Gibt es eine einfache Möglichkeit, nur die geänderten Dateien von einem bestimmten Commit oder einer Serie von Commits in git zu exportieren / zu archivieren? Ich kann keine klaren Anweisungen finden, dies zu tun (und ich bin neu in Linux / Git).
Ich benutze msysgit, und in den meisten Fällen bin ich mit der Bereitstellung von ganzen Repositories in Ordnung, aber in vielen Fällen ist es viel effizienter, kleine Fixes mit ein paar Dateien gleichzeitig zu implementieren.
Das Verschieben / Ziehen / Installieren von Git auf den Remote-Servern ist nicht wirklich eine Option, da meine Zugriffsebene zwischen Projekten und Clients variiert.
Gibt es einen einfachen Weg zu (grober Vermutung):
%Vor% Ich glaube nicht, dass es nötig ist, git-archive einzubinden. Mit --name-only
könnten Sie die Dateien tarieren:
Da Sie neu bei Linux sind, könnte dies eine Erklärung erfordern:
Die Backticks in der Befehlszeile bewirken, dass die Shell zuerst den Befehl in den Backticks ausführt und dann die Ausgabe dieses Befehls in die Befehlszeile von tar
einfügt. Daher wird zuerst git diff
ausgeführt, wodurch eine Liste von Dateinamen erzeugt wird, jeweils einer in jeder Zeile. Die Zeilenumbrüche werden auf Leerzeichen reduziert, und die gesamte Liste der Dateien wird in der Befehlszeile tar
platziert. Dann wird tar
ausgeführt, um das angegebene Archiv zu erstellen. Beachten Sie, dass dadurch ziemlich lange Befehlszeilen generiert werden können. Wenn Sie also sehr viele geänderte Dateien haben, benötigen Sie möglicherweise eine andere Technik.