Git Stash Spezifische Dateien
In diesem Tutorial erfahren Sie, wie Sie Änderungen nur an bestimmten Dateien in Git speichern.
Wenn wir in Git einige Änderungen am Arbeitsbaum vornehmen, haben wir möglicherweise einige Änderungen, die im lokalen Repository bereitgestellt oder noch nicht bereitgestellt werden können.
Möglicherweise möchten wir diese Änderungen jetzt für eine Weile speichern und an einer Version der Dateien arbeiten, bevor diese Änderungen vorgenommen werden.
Daher können wir für solche Zwecke den Befehl git stash push
verwenden, um die Änderungen (d. h.) für die spätere Verwendung zu speichern.
Danach können wir wieder den Befehl git stash pop
verwenden, um diese Änderungen zurückzubekommen.
Manchmal müssen wir Änderungen, die an bestimmten Dateien vorgenommen wurden, speichern oder verstauen, anstatt alle Dateien zu speichern, die im Arbeitsbaum des Repositorys geändert wurden.
Wir werden dies nun an einem Beispiel veranschaulichen.
Verwenden von git stash push
, um Änderungen bestimmter Dateien in Git zu speichern
Angenommen, wir haben eine Datei namens example.txt
im Arbeitsbaum des Repositorys. Wir haben einige Änderungen an der Datei vorgenommen und möchten diese Änderungen jetzt für eine Weile in Git speichern.
Möglicherweise haben wir auch Änderungen in den anderen Dateien im Arbeitsbaum, aber wir möchten sie nicht speichern.
Die Syntax des Befehls zum Verstauen bestimmter Dateien in Git lautet git stash push <file>
.
Daher gehen wir wie folgt vor, um die Änderungen, die nur an der Datei example.txt
vorgenommen wurden, zu speichern.
$ git stash push example.txt
Saved working directory and index state On main: example.txt
HEAD is now at 8b3560b minor changes
Wir haben also nur die Änderungen der Datei example.txt
zwischengespeichert.
Wir können jetzt die Stash-Einträge auflisten und unseren Stash-Eintrag wie folgt sehen.
$ git stash list
stash@{0}: On main: example.txt
Wir können beim Verstauen auch eine bestimmte Nachricht wie folgt hinzufügen.
$ git stash push -m "my example stash" example.txt
Saved working directory and index state On main: my example stash example.txt
HEAD is now at 8b3560b minor changes
Wir können es wieder wie folgt auflisten.
$ git stash list
stash@{0}: On main: my example stash example.txt
Abgesehen davon können wir auch interaktiv bestimmte Änderungen der gewünschten Dateien in Git stashen.
Dazu müssen wir die Option --patch oder -p
zusammen mit dem Befehl git stash push
verwenden.
Um dies in unserem Beispiel zu tun, gehen wir also wie folgt vor.
$ git stash push --patch
diff --git a/example.txt
index 7ab5ca4..a281fc6 100644
--- a/example.txt
+++ b/example.txt
@@ -4,9 +4,11 @@
some text
+new text
some other text
some text again
+second new text
Stash this hunk [y,n,q,a,d,/,s,e,?]? y
Saved working directory and index state WIP on main: 8b3560b minor changes
Der Befehl git stash
durchläuft alle Änderungen im Arbeitsbaum des Repositorys und fordert Sie auf, die Änderungen zum Stash auszuwählen.
Hier haben wir die Option y
neben der Frage Stash this hunk [y,n,q,a,d,/,s,e,?]?
eingegeben, um die Änderungen der Datei example.txt
zu speichern.
Wir können die Option n
eingeben, um den aktuellen hunk
der Datei (die Änderung) nicht zu speichern.
Weitere Informationen zu git stash
und verfügbaren Optionen finden Sie auf dieser Website, nämlich git stash - Änderungen speichern.