Git: Geänderte Dateien Zippen und Filestruktur beibehalten
Falls man für ein Projekt Git nutzt und nun die geänderten Dateien bündeln und als Zip haben möchte, kann dies ganz simpel mit ein paar Commands machen. Mit Git diff können wir einen Vergleich machen. Was hat sich geändert.
In unserem Zip welches in meinem Beispiel später wieder auf einen anderen Server gespielt wird und dort die Live Dateien überschreibt, muss natürlich die Filestruktur beibehalten werden.
Der Befehl der uns all diese Arbeit nun abnimmt sieht folgendermassen aus:
git archive --output=export.zip HEAD $(git diff --name-only --diff-filter=ACMR $(git rev-parse HEAD))
Kurz erklärt:
git archive --output=export.zip
Erstellt schlussendlich das Zip, also der Output.
git diff --name-only --diff-filter=ACMR
Dies würde einzeln ausgeführt eine Liste mit den geänderten Dateien anzeigen (diff).
git rev-parse HEAD
Dies ermittelt uns die ID des letzten Commits. Die ID ist hierbei ein Hash Wert.