Frage

Gibt es eine einfache Art und Weise zu exportieren / Archiv nur die geänderten Dateien aus einem bestimmten Commit oder eine Reihe von Commits in git? Ich kann nicht scheinen klare Anweisungen zu finden, dies zu tun (und ich bin neu in Linux / Git).

Ich bin mit msysgit, und zum größten Teil mit mir geht es gut gesamten Repositories bereitstellen, aber in vielen Fällen ist es viel effizienter kleine Korrekturen ein paar Dateien zu einem Zeitpunkt, zu implementieren.

Schieben / Ziehen / Installation git auf dem Remote-Server ist nicht wirklich eine Option als meine Zugriffsebene zwischen Projekten und Kunden variiert.

Gibt es eine geradlinige Art und Weise zu (grobe Schätzung):

pipe 'diff --names-only' to 'git-archive'? 
War es hilfreich?

Lösung

Ich glaube nicht, dass es keine Notwendigkeit git-Archiv einzubinden. Mit --name-only, könnten Sie die Dateien tar auf:

tar czf new-files.tar.gz `git diff --name-only [diff options]`

Da Sie auf Linux vertraut sind, könnte dies ausführlicher beschrieben:

Die Backticks in der Befehlszeile bewirken, dass die Schale um zuerst den Befehl innerhalb der Backticks durchführt, dann ersetzt die Ausgabe dieses Befehls in die Befehlszeile des tar. So wird der erste git diff laufen, die eine Liste von Dateinamen erzeugt, eine auf jeder Zeile. Die Zeilenumbrüche sind kollabiert Räume und die gesamte Liste der Dateien auf dem tar Befehlszeile platziert. Dann tar betrieben, um das gegebene Archiv zu erstellen. Beachten Sie, dass diese erzeugen kann sehr lange Befehlszeilen, wenn Sie also eine sehr große Anzahl von geänderten Dateien haben, können Sie eine andere Technik benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top