Git kann auch binäre Dateiformate, wie z.B. das Dateiformat docx, in seinen Repositories verwalten und die Versionierung übernehmen. Ein kleines Problem besteht bei den Vergleichen (diff) der Versionen.
Git ist eigentlich dafür gedacht reine Flat files zu managen und nicht für binäre Dateien. Mit ein paar kleinen Handgriffen ist es jedoch möglich Git und Word miteinander zu verbinden. Vergleiche zwischen Versionen von versionierten „docx„-Dateien ist damit sehr einfach möglich.
Durch die Verwendung von Git zur Versionierung von Word-Dateien (docx) ermöglicht es den Benutzern die Vorzüge von Git zu nutzen.
Inhaltsverzeichnis
1. Möglichkeit – Git Bash
.gitconfig
.gitattributes
2. Möglichkeit – Gegenüberstellung der Dokumente in Word
1. TortoiseGit installieren
2. Nur diff-doc.js installieren
.gitconfig
Öffnet man eine docx-Datei auf einem Ubuntu, ohne einem installierten Textverarbeitungsprogramm wie LibreOffice Writer, dann wird die Datei entpackt. Man sieht dann sehr schön die Dateistruktur und erkennt auch sehr gut, weshalb der Vergleich von Dateien nicht so einfach ist, wie bei Flat files.

Es gibt dabei zwei Möglichkeiten in Git Änderungen an Word-Dateien zu verfolgen und zu vergleichen.
1. Möglichkeit – Git Bash
Bei dieser Möglichkeit wird Git Bash, also das Terminal, für den Vergleich von Word-Datei-Versionen verwendet. Eine grafische Darstellung ist hier nicht möglich.
Und der Vergleich von Word-Dateien funktioniert OHNE eine installiertes Word auf dem Git-Client.
Für diese Möglichkeit muss die Applikation „pandoc“ auf dem PC installiert werden. Die Installationsdatei lässt sich von der offiziellen Projektseite herunterladen. Nach der Installation ist die Software bereits einsatzbereit, weitere Anpassungen sind nicht erforderlich.
➡ https://pandoc.org/installing.html
Im nächsten Schritt muss Git noch mitgeteilt werden, dass es pandoc für die „Aufbereitung“ von Word-Dateien verwenden soll.
Dazu sind die beiden Dateien zu editieren:
- .gitconfig
- .gitattributes
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
.gitconfig
Die Datei befindet sich im Home-Verzeichnis eures Benutzers. Editieren könnt ihr die mit dem Texteditor eurer Wahl.
Fügt einfach die folgenden Zeilen am Ende der Datei hinzu:
[diff "pandoc"] textconv=pandoc --to=markdown binary=true prompt = false [alias] wdiff = diff --word-diff=color --unified=1
.gitattributes
Die Datei könnt ihr einfach in den Root-Ordner eures Git-Repository anlegen, sollte es sie noch nicht geben.

Dort tragt ihr die Zeile ein:
*.docx diff=pandoc
Word-Dateien lassen sich anschließend mit dem Befehl vergleichen.
git wdiff Word.docx
Die Word-Datei sieht dabei wie folgt aus:

Änzeige der Änderungen in der Git Bash, auf der Konsole.
Anzeige der Änderungen in der Git GUI Git-Cola.
Anzeige der Änderungen in der Git GUI.


2. Möglichkeit – Gegenüberstellung der Dokumente in Word
Mit der zweiten Möglichkeit werden die Änderungen direkt in Word gegenübergestellt. Dabei wird auf die Vergleichen-Funktion direkt in Word zurückgegriffen. Die Funktion ist zu erreichen über: „Überprüfen –> Vergleichen“

Für die Verwendung dieser Vergleichsmöglichkeit wird das JavaScript „diff-doc.js“ aus dem Git GUI TortoiseGit verwendet.
Hier habt ihr zwei Möglichkeiten:
- TortoiseGit auf eurem Client installieren
- diff-doc.js von gitlab.com laden
- http://www.fabiandeitelhoff.de/2013/11/git-besserer-vergleich-von-word-dokumenten/
ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.
1. TortoiseGit installieren
TortoiseGit ist ein Git-Client, der sich wie TortoiseSVN, als Kontextmenü in den Windows Explorer einbettet. Von dort können dann alle Funktionen aufgerufen direkt aufgerufen werden.

Die Installationsdatei könnt ihr von der offiziellen Projektseite herunterladen und anschließend wie gewohnt installieren.
➡ https://tortoisegit.org/
Durch die Installation der vollständigen Installation der TortoiseGit Applikation auf eurem Client wird automatisch des JavaScript mit installiert. Ihr findet das Script normalerweise im Verzeichnis „C:\Programme\TortoiseGit\Diff-Scripts“
2. Nur diff-doc.js installieren
Für den Vergleich von Word-Dateien wird TortoiseGit nicht benötigt, sondern lediglich das JavaScript diff-doc.js. Deshalb ist es möglich nur das JavaScript herunterzuladen und für den diff zu verwenden.
Das Script findet ihr auf TortoiseGit-Projektseite auf gitlab.com. Dort hangelt ihr euch in das Verzeichnis „tortoisegit/contrib/diff-scripts“ und ladet von dort nur die Datei „diff-doc.js“ herunter. Die Datei speichert ihr dann aschließend auf eurer Festplatte.

Egal welche der beiden Möglichkeiten ihr für die Installation des JavaScripts bevorzugt, die weitere Konfiguration ist die Gleiche. Bei der dieser Vorgehensweise ist nur die „.gitconfig“ zu editieren.
.gitconfig
Am Ende der Datei fügt ihr die folgenden Zeilen hinzu. Achtet darauf, dass ihr das richtige Verzeichnis der diff-doc.js eintragt.
[diff] tool = wdiff [difftool "wdiff"] cmd="wscript.exe "c:\\Program Files\\TortoiseGit\\Diff-Scripts\\diff-doc.js" "$LOCAL" "`pwd`/$REMOTE""
Den Vergleich von in dem Git-Repository hinterlegtn Word-Dateien startet ihr mit dem Befehl
git difftool -t wdiff test.docx

Nachdem ihr die Meldung mit „Y“ bestätigt hab, öffnet sich WOrd und stellt die Versionen gegenüber.

Microsoft Office beherrscht auch das reine XML-Format. Solche XML-Dateien sind Textdateien und könnten damit sofort mit Git diff genutzt werden, der Umweg über die unten beschrieben Möglichkeiten sind damit nicht mehr erforderlich.
Weitere Git- Beiträge hier im Blog
➡ Git Beiträge auf strobelstefan.org