1-
21Git für Binärdateien
32====================
43
@@ -25,16 +24,16 @@ Excel-Dateien verwenden:
2524 :language: python
2625 :lines: 5-
2726
28- Nun fügt ihr noch in der globalen Git-Konfiguration in der Datei :file: ` ~/.gitconfig `
29- den folgenden Abschnitt hinzu:
27+ Nun fügt ihr noch in der globalen Git-Konfiguration in der Datei
28+ :file: ` ~/.config/git/config ` den folgenden Abschnitt hinzu:
3029
3130.. code-block :: ini
3231
3332 [diff " excel" ]
3433 textconv =python3 /PATH/TO/exceltocsv.py
3534 binary =true
3635
37- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
36+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
3837``excel ``-Konverter mit :file: `*.xlsx `-Dateien verknüpft:
3938
4039.. code-block :: ini
@@ -58,15 +57,15 @@ Hierfür wird zusätzlich ``pdftohtml`` benötigt. Ihr installiert es mit
5857
5958 $ brew install pdftohtml
6059
61- Anschließend fügt ihr den folgenden Abschnitt der globalen Git-Konfiguration in der
62- Datei :file: `~/.gitconfig ` hinzu:
60+ Anschließend fügt ihr den folgenden Abschnitt der globalen Git-Konfiguration in
61+ der Datei :file: `~/.config/git/config ` hinzu:
6362
6463.. code-block :: ini
6564
6665 [diff " pdf" ]
6766 textconv =pdftohtml -stdout
6867
69- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
68+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
7069``pdf ``-Konverter mit :file: `*.pdf `-Dateien verknüpft:
7170
7271.. code-block :: ini
@@ -76,10 +75,10 @@ Schließlich wird in der globalen :file:`~/.gitattributes`-Datei unser
7675 Nun wird beim Aufruf von ``git diff `` die PDF-Datei zunächst konvertiert und
7776dann ein Diff über den Ausgaben des Konverters durchgeführt.
7877
79- … für Word- Dokumente
80- --------------------
78+ … für Dokumente
79+ ---------------
8180
82- Auch Unterschiede in Word- Dokumenten lassen sich anzeigen. Hierfür kann `Pandoc
81+ Auch Unterschiede in Dokumenten lassen sich anzeigen. Hierfür kann `Pandoc
8382<https://pandoc.org/> `_ verwendet werden, das einfach installiert werden kann
8483mit
8584
10099 Herunterladen und Installieren der aktuellen :file: `.msi `-Datei von `GitHub
101100 <https://github.com/jgm/pandoc/releases/> `_.
102101
103- Anschließend wird der globalen Git-Konfiguration :file: `~/.gitconfig ` folgender
104- Abschnitt hinzugefügt:
102+ Anschließend wird der globalen Git-Konfiguration :file: `~/.config/git/config `
103+ folgender Abschnitt hinzugefügt:
105104
106105.. code-block :: ini
107106
108- [diff " word" ]
109- textconv =pandoc --to =markdown
110- binary =true
111- prompt =false
107+ [diff " pandoc-to-markdown" ]
108+ textconv = pandoc --to markdown
109+ cachetextconv = true
112110
113- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
114- ``word ``-Konverter mit :file: `*.docx `-Dateien verknüpft:
111+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
112+ ``pandoc-to-markdown ``-Konverter mit :file: `*.docx `, :file: `*.odt ` und
113+ :file: `*.rtf `-Dateien verknüpft:
115114
116115.. code-block :: ini
117116
118- *.docx diff =word
117+ *.docx diff =pandoc-to-markdown
118+ *.odt diff =pandoc-to-markdown
119+ *.rtf diff =pandoc-to-markdown
120+
121+ .. tip ::
122+ :doc: `Jupyter Notebooks <jupyter-tutorial:notebook/index >` schreiben in eine
123+ JSON-Datei :ref: `*.ipynb <jupyter-tutorial:was-ist-eine-ipynb-datei >`, die
124+ ziemlich dicht und insbesondere bei Diffs schwer zu lesen ist. Die
125+ Markdown-Darstellung von Pandoc vereinfact dies:
126+
127+ .. code-block :: ini
128+
129+ *.ipynb diff =pandoc-to-markdown
119130
120131 Die gleiche Vorgehensweise kann auch angewandt werden, um nützliche Diffs von
121132anderen Binärdateien zu erhalten, :abbr: `z.B. ( zum Beispiel ) ` ``*.zip ``,
@@ -124,3 +135,59 @@ Metainformationen von Bildern mit ``exiv2``. Zudem gibt es
124135Konvertierungswerkzeuge für die Umwandlung von :file: `*.odt `, :file: `*.doc ` und
125136anderen Dokumentenformaten in einfachen Text. Für Binärdateien, für die es
126137keinen Konverter gibt, reichen oft auch Strings aus.
138+
139+ … für Medien-Dateien
140+ --------------------
141+
142+ `ExifTool <https://exiftool.org >`_ kann verwendet werden um die Metadaten der
143+ Medien-Dateien in Text zu konvertieren.
144+
145+ .. tab :: Debian/Ubuntu
146+
147+ .. code-block :: console
148+
149+ $ sudo apt install libimage-exiftool-perl
150+
151+ .. tab :: macOS
152+
153+ .. code-block :: console
154+
155+ $ brew install exiftool
156+
157+ .. tab :: Windows
158+
159+ .. code-block :: ps1
160+
161+ > choco install exiftool
162+
163+ .. seealso ::
164+ * `Installing ExifTool <https://exiftool.org/install.html >`_
165+
166+ Anschließend könnt ihr in der globalen Git-Konfigurationsdatei
167+ :file: `~/.config/git/config ` folgenden Abschnitt hinzufügen:
168+
169+ .. code-block :: ini
170+
171+ [diff " exiftool" ]
172+ textconv = exiftool --composite -x ' Exiftool:*'
173+ cachetextconv = true
174+ xfuncname =
175+ " ^-.*$"
176+
177+ Schließlich wird in der :file: `~/.config/git/attributes ` der
178+ ``exiftool ``-Konverter mit Datei-Endungen von Medien-Dateien verknüpft:
179+
180+ .. code-block :: ini
181+
182+ *.avif diff =exiftool
183+ *.bmp diff =exiftool
184+ *.gif diff =exiftool
185+ *.jpeg diff =exiftool
186+ *.jpg diff =exiftool
187+ *.png diff =exiftool
188+ *.webp diff =exiftool
189+
190+ .. seealso ::
191+ ``exiftool `` kann noch viele weitere Medien-Dateien verarbeiten. Eine
192+ vollständige Liste erhaltet ihr in `Supported File Types
193+ <https://exiftool.org/#supported> `_.
0 commit comments