Zum Inhalt

Git und Word - Versionsvergleich von docx-Dateien

Git kann auch binäre Dateiformate, wie z.B. das Dateiformat docx, in seinen Repositories verwalten und die Versionsverwaltung ü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 verwalteten docx-Dateien ist damit sehr einfach möglich. Durch die Verwendung von Git zur Versionsverwaltung von Word-Dateien (docx) ermöglicht es den Benutzern die Vorzüge von Git zu nutzen.

Ö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.

Entpackte docx-Datei

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.

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:

  1. .gitconfig
  2. .gitattributes

.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.

gitattributes

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:

Word-Datei

Änzeige der Änderungen in der Git Bash, auf der Konsole.

wdiff - Git Bash

Anzeige der Änderungen in der Git GUI Git-Cola.

wdiff - Git-Cola

Anzeige der Änderungen in der Git GUI.

Kontextmenü Git GUI

wdiff - 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"

Word-Funktion - 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:

  1. TortoiseGit auf eurem Client installieren
  2. diff-doc.js von gitlab.com laden

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.

TortoiseGit - Kontextmenü

Die Installationsdatei könnt ihr von der offiziellen Projektseite herunterladen und anschließend wie gewohnt installieren.

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 anschließend auf eurer Festplatte.

diff-doc.js von gitlab.com herunterladen


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

wdiff starten

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

Versionsvergleich in Word

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.

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj