So überprüfen Sie, ob ein Git-Stash bestimmte Änderungen enthält

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Inhalt eines Git-Stashes untersuchen können, um festzustellen, ob er bestimmte Änderungen enthält. Wir beginnen damit, einige Änderungen in einem Beispiel-Repository vorzunehmen und diese zu stash'en.

Anschließend verwenden Sie den Befehl git stash show -p, um die detaillierte Differenz des neuesten Stashes anzuzeigen. Dadurch können Sie genau sehen, welche Zeilen hinzugefügt, entfernt oder geändert wurden. Abschließend erfahren Sie, wie Sie mehrere Stashes untersuchen können, um die gesuchten Änderungen zu finden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") subgraph Lab Skills git/diff -.-> lab-560103{{"So überprüfen Sie, ob ein Git-Stash bestimmte Änderungen enthält"}} git/stash -.-> lab-560103{{"So überprüfen Sie, ob ein Git-Stash bestimmte Änderungen enthält"}} end

Führen Sie git stash show -p aus

In diesem Schritt lernen wir, wie man die in einem Git-Stash gespeicherten Änderungen untersucht. Wenn Sie git stash verwenden, speichert Git Ihre uncommitteten Änderungen. Um genau zu sehen, was gespeichert wurde, können Sie den Befehl git stash show verwenden.

Zunächst machen wir einige Änderungen an einer Datei in unserem my-time-machine-Repository. Navigieren Sie zurück in das Verzeichnis, falls Sie nicht bereits dort sind:

cd ~/project/my-time-machine

Jetzt fügen wir unserer message.txt-Datei neuen Inhalt hinzu. Wir verwenden den echo-Befehl mit >>, um die Datei anzuhängen, damit wir den bestehenden Inhalt nicht überschreiben.

echo "Adding a new line for stashing." >> message.txt

Sie können den Inhalt der Datei mit cat überprüfen:

cat message.txt

Sie sollten sowohl die ursprüngliche Zeile als auch die neue Zeile sehen:

Hello, Future Me
Adding a new line for stashing.

Jetzt legen wir diese Änderungen in den Stash. Denken Sie daran, dass das Stashing Ihre uncommitteten Änderungen speichert, sodass Sie an etwas anderem arbeiten und später wieder zu ihnen zurückkehren können.

git stash save "Added a line for stashing demo"

Sie sollten eine Ausgabe sehen, die anzeigt, dass die Änderungen gespeichert wurden:

Saved working tree and index state On branch master: Added a line for stashing demo

Nachdem die Änderungen im Stash liegen, verwenden wir git stash show, um zu sehen, was sich im Stash befindet.

git stash show

Dieser Befehl gibt Ihnen eine Zusammenfassung der Änderungen im neuesten Stash. Sie könnten eine Ausgabe wie diese sehen:

 message.txt | 1 +
 1 file changed, 1 insertion(+)

Dies sagt uns, dass eine Datei (message.txt) geändert wurde und es eine Einfügung (eine neue Zeile) gab.

Um den tatsächlichen Inhalt der Änderungen zu sehen, müssen wir die -p-Option hinzufügen (die für "patch" steht). Dies zeigt uns die Differenz, genau wie git diff.

git stash show -p

Dieser Befehl zeigt die genauen Zeilen an, die in den gestashten Änderungen hinzugefügt, entfernt oder geändert wurden. Die Ausgabe wird ähnlich wie eine Standard-Git-Differenz aussehen:

diff --git a/message.txt b/message.txt
index <some_hash>..<some_hash> 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
 Hello, Future Me
+Adding a new line for stashing.

Die Zeilen, die mit + beginnen, zeigen Hinzufügungen an. In diesem Fall haben wir die Zeile "Adding a new line for stashing." hinzugefügt.

Das Verwenden von git stash show -p ist entscheidend, um zu verstehen, was sich in einem Stash befindet, bevor Sie entscheiden, es anzuwenden oder zu löschen. Es hilft Ihnen, zu bestätigen, dass der Stash die erwarteten Änderungen enthält.

Suche nach Änderungen im Stash-Diff

Im vorherigen Schritt haben wir git stash show -p verwendet, um die Änderungen in einem Stash anzuzeigen. Manchmal kann die Diff-Ausgabe sehr lang sein, insbesondere in großen Projekten. In solchen Fällen möchten Sie möglicherweise nach bestimmten Änderungen innerhalb des Stash-Diffs suchen.

Die Diff-Ausgabe von Git ist nur Text, daher können Sie sie an Standard-Linux-Befehlszeilentools wie grep weiterleiten, um nach Mustern zu suchen.

Versuchen wir, die Zeile zu suchen, die wir im vorherigen Schritt hinzugefügt haben: "Adding a new line for stashing."

Stellen Sie sicher, dass Sie sich noch im Verzeichnis ~/project/my-time-machine befinden.

cd ~/project/my-time-machine

Jetzt führen Sie den Befehl git stash show -p aus und leiten Sie seine Ausgabe an grep weiter. Wir suchen nach dem Wort "stashing".

git stash show -p | grep "stashing"

Sie sollten die Zeile aus der Diff-Ausgabe sehen, die das Wort "stashing" enthält:

+Adding a new line for stashing.

Dies zeigt, wie Sie grep verwenden können, um die Ausgabe von git stash show -p zu filtern und bestimmte Zeilen oder Muster innerhalb der gestashten Änderungen zu finden.

Sie können alle Optionen von grep verwenden, um Ihre Suche zu verfeinern. Beispielsweise könnten Sie -i für eine Groß-/Kleinschreibung-unabhängige Suche oder -C verwenden, um Kontextzeilen um die Übereinstimmung anzuzeigen.

Die Fähigkeit, im Stash-Diff zu suchen, ist eine leistungsstarke Technik, insbesondere wenn Sie mehrere Stashes oder große Stashes haben. Sie hilft Ihnen, die Änderungen, an denen Sie interessiert sind, schnell zu finden, ohne dass Sie die gesamte Diff-Ausgabe manuell durchscrollen müssen.

Testen von mehreren Stashes

In realen Szenarien müssen Sie möglicherweise Änderungen mehrmals stashen. Git ermöglicht es Ihnen, mehrere Stashes zu haben, und diese werden als Stapel verwaltet. Der neueste Stash befindet sich oben auf dem Stapel und wird als stash@{0} bezeichnet. Ältere Stashes sind stash@{1}, stash@{2} und so weiter.

Erstellen wir nun einen weiteren Satz von Änderungen und legen Sie sie in den Stash, um zu sehen, wie dies funktioniert.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.

cd ~/project/my-time-machine

Fügen wir nun eine andere Zeile in die message.txt-Datei ein:

echo "Adding a second line for another stash." >> message.txt

Überprüfen Sie den Inhalt:

cat message.txt

Sie sollten jetzt drei Zeilen sehen:

Hello, Future Me
Adding a new line for stashing.
Adding a second line for another stash.

Stashen Sie nun diese neuen Änderungen:

git stash save "Added a second line for stashing demo"

Sie sollten eine Ausgabe sehen, die den neuen Stash anzeigt:

Saved working tree and index state On branch master: Added a second line for stashing demo

Um die Liste der Stashes anzuzeigen, die Sie haben, verwenden Sie den Befehl git stash list:

git stash list

Sie sollten etwas wie Folgendes sehen:

stash@{0}: On master: Added a second line for stashing demo
stash@{1}: On master: Added a line for stashing demo

Beachten Sie, dass der neueste Stash ("Added a second line...") stash@{0} ist und der vorherige ("Added a line...") stash@{1}.

Sie können git stash show -p mit der Stash-Kennung verwenden, um den Inhalt eines bestimmten Stashes anzuzeigen. Beispielsweise, um den ersten Stash, den wir erstellt haben (stash@{1}), anzuzeigen:

git stash show -p stash@{1}

Dies zeigt Ihnen die Diff für die Änderungen in stash@{1}:

diff --git a/message.txt b/message.txt
index <some_hash>..<some_hash> 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
 Hello, Future Me
+Adding a new line for stashing.

Und um den neuesten Stash (stash@{0}) anzuzeigen:

git stash show -p stash@{0}

Dies zeigt Ihnen die Diff für die Änderungen in stash@{0}:

diff --git a/message.txt b/message.txt
index <some_hash>..<some_hash> 100644
--- a/message.txt
+++ b/message.txt
@@ -2 +2,2 @@
 Adding a new line for stashing.
+Adding a second line for another stash.

Die Fähigkeit, mehrere Stashes zu verwalten und ihren Inhalt individuell zu untersuchen, ist sehr nützlich, wenn Sie verschiedene Aufgaben oder Experimente gleichzeitig bearbeiten.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Inhalt eines Git-Stashes mit dem Befehl git stash show untersucht. Wir begannen damit, Änderungen an einer Datei vorzunehmen und diese Änderungen dann mit einer beschreibenden Nachricht mithilfe von git stash save in den Stash zu legen. Anschließend haben wir git stash show verwendet, um eine Zusammenfassung der Änderungen zu erhalten, und vor allem git stash show -p, um die detaillierte Diff der gestashten Änderungen anzuzeigen. Dies ermöglichte es uns, die genauen Zeilen zu sehen, die hinzugefügt oder geändert wurden.

Die folgenden Schritte, die im bereitgestellten Inhalt nicht vollständig detailliert wurden, würden wahrscheinlich das Suchen nach bestimmten Änderungen im Stash-Diff und das Testen mehrerer Stashes umfassen, um zu verstehen, wie man verschiedene Stashes im Stapel untersucht. Dieser Prozess ist entscheidend, um sicherzustellen, dass ein Stash die erwarteten Änderungen enthält, bevor er angewendet oder gelöscht wird.