Wie meine Frage besagt, schreibe ich nach dem Ändern von Dateien und dem Hinzufügen neuer Dateien in meinem Repository normalerweise Dateien mit git fest , aber manchmal müssen alle geänderten / geänderten Dateien aus Gründen der Organisation in einen Ordner kopiert werden.
Irgendeine Option?
Antworten:
Angenommen, Sie meinen, Sie haben noch keine Festschreibung vorgenommen und möchten alle Dateien verpacken, für die derzeit lokale Änderungen gelten, können Sie die Liste der geänderten Dateien mit abrufen
git ls-files --modified
. Wenn Sie die Dateien möchten, die beim letzten Festschreiben geändert wurden, können Sie sie verwendengit diff --name-only HEAD^
. Wohin Sie von dort aus gehen, liegt bei Ihnen. Beispiele:Beachten Sie, dass hierbei die Versionen der Dateien im Arbeitsbaum verwendet werden.
Wenn Sie Leerzeichen in Dateinamen haben, müssen Sie sich etwas mehr Mühe geben.
(Abhängig davon, was Sie wirklich versuchen, suchen Sie möglicherweise nach
git stash
Informationen, die alle geänderten Dateien verbergen und einen sauberen Arbeitsbaum hinterlassen, oder Sie möchten einfach einen temporären Zweig erstellen, für den Sie sich verpflichten möchten. )quelle
Um genau das zu tun, was Sie angefordert haben (vorausgesetzt, Sie haben bereits ein Commit durchgeführt und möchten ein Archiv der Dateien erstellen, die durch das letzte Commit geändert wurden), können Sie Folgendes tun:
Wenn Sie Dateien in einem Commit entfernt haben, verwenden Sie Folgendes, um einen Pfadspezifikationsfehler zu vermeiden
--diff-filter=d
:Aber vielleicht möchten Sie tatsächlich einen Patch erstellen mit:
und wenden Sie diesen Patch dort an, wo Sie ihn benötigen:
Das Anwenden eines Patches funktioniert natürlich nur, wenn Ihr Zielverzeichnis bereits die alte Version Ihres Repositorys enthält.
quelle
git format-patch
anstelle von Pipinggit diff
zu einer Datei zu verwendengit archive --format=zip HEAD `git diff HEAD~2 HEAD --name-only` > a.zip
Wenn Sie TortoiseGIt verwenden, wird dies ebenfalls bereitgestellt.
Wählen Sie den Ordner im Explorer aus.
Klicken Sie mit der rechten Maustaste auf das Menü Auswählen, TortoiseGit-> Protokoll anzeigen.
Wählen Sie das Arbeitsverzeichnis und die zuletzt festgeschriebene Version.
Rechtsklick. Revisionen vergleichen. Wählen Sie Dateien aus, die Sie speichern / exportieren möchten.
Rechtsklick. In Ordner exportieren. Getan.
quelle
Zippen Sie die geänderten und neu erstellten Dateien im Git-Repository
quelle
Angenommen, Sie haben keine Dateien gelöscht oder umbenannt, sollte dies den Trick tun
Kopieren:
Postleitzahl:
quelle
egrep: repetition-operator operand invalid
. 😞Ich benutze Git Bash unter Windows.
quelle
Hier ist ein Skript, das diesen Prozess erheblich vereinfachen kann. Es kopiert alle geänderten Dateien in das verwendete definierte Verzeichnis und behält auch die Verzeichnisstruktur der Codebasis bei.
run: sh scr.sh.
===============================================
===============================================
quelle