logo

Git Stash

Manchmal möchten Sie die Zweige wechseln, arbeiten aber an einem unvollständigen Teil Ihres aktuellen Projekts. Sie möchten keine halbfertige Arbeit zu einem Commit machen. Git-Stashing ermöglicht Ihnen dies. Der Git-Stash-Befehl ermöglicht es Ihnen, Zweige zu wechseln, ohne den aktuellen Zweig festzuschreiben.

Die folgende Abbildung zeigt die Eigenschaften und Rolle des Stashings in Bezug auf Repository und Arbeitsverzeichnis.

Git Stash

Im Allgemeinen bedeutet der Stash „ Bewahren Sie etwas sicher an einem versteckten Ort auf .' Der Sinn in Git ist auch für stash derselbe; Git speichert Ihre Daten vorübergehend sicher und ohne Verpflichtung.

Durch Stashing wird der unordentliche Zustand Ihres Arbeitsverzeichnisses übernommen und zur weiteren Verwendung vorübergehend gespeichert. Mit Git Stash sind viele Optionen verfügbar. Nachfolgend sind einige nützliche Optionen aufgeführt:

    Git-Stash Git-Stash speichern Git-Stash-Liste Git-Stash anwenden Git-Stash-Änderungen Git Stash Pop Git-Stash-Drop Git-Stash klar Git-Stash-Zweig

Versteckarbeit

Lassen Sie es uns anhand eines Echtzeitszenarios verstehen. Ich habe in zwei Dateien aus zwei verschiedenen Zweigen Änderungen an meinem Projekt GitExample2 vorgenommen. Ich bin in einem chaotischen Zustand und habe noch keine Datei vollständig bearbeitet. Deshalb möchte ich es vorübergehend für die zukünftige Verwendung speichern. Wir können es verstauen, um es in seinem aktuellen Status zu speichern. Schauen wir uns zum Verstauen den aktuellen Status des Repositorys an. Um den aktuellen Status des Repositorys zu überprüfen, führen Sie den Befehl git status aus. Der Befehl git status wird verwendet als:

Java-Objekt

Syntax:

 $ git status 

Ausgabe:

Git Stash

Anhand der obigen Ausgabe können Sie den Status erkennen, dass es zwei nicht verfolgte Dateien gibt design.css Und neue Datei.txt im Repository verfügbar. Um es vorübergehend zu speichern, können wir den Befehl git stash verwenden. Der Befehl git stash wird wie folgt verwendet:

Syntax:

 $ git stash 

Ausgabe:

Git Stash

In der angegebenen Ausgabe wird die Arbeit mit dem Befehl git stash gespeichert. Wir können den Status des Repositorys überprüfen.

Git Stash

Wie Sie sehen, ist meine Arbeit einfach an ihrem aktuellen Platz versteckt. Jetzt ist das Verzeichnis bereinigt. An dieser Stelle können Sie zwischen Zweigen wechseln und an ihnen arbeiten.

Git Stash Save (Speichern von Stashes mit der Nachricht):

In Git können die Änderungen mit einer Nachricht gespeichert werden. Um eine Änderung mit einer Nachricht zu speichern, führen Sie den folgenden Befehl aus:

Syntax:

 $ git stash save '' 

Ausgabe:

Git Stash

Der obige Vorrat wird mit einer Nachricht gespeichert

Git-Stash-Liste (überprüfen Sie die gespeicherten Stashes)

Um die gespeicherten Stashes zu überprüfen, führen Sie den folgenden Befehl aus:

Syntax:

 $ git stash list 

Ausgabe:

Git Stash

Im obigen Fall habe ich einen Stash erstellt, der als „ stash@{0}: WIP im Test: 0a1a475 CSS-Datei '.

Wenn wir mehr als einen Stash haben, werden alle Stashes jeweils mit unterschiedlichen Stash-IDs angezeigt. Betrachten Sie die folgende Ausgabe:

Git Stash

Es werden alle Stashes mit der Indexierung als angezeigt stash@{0}: stash@{1}: und so weiter.

Slice-Java-Array

Git Stash anwenden

Sie können die Änderungen, die Sie gerade gespeichert haben, erneut anwenden, indem Sie den Befehl git stash verwenden. Um das Commit anzuwenden, verwenden Sie den Befehl „git stash“, gefolgt von der Option „apply“. Es wird verwendet als:

Syntax:

 $ git stash apply 

Ausgabe:

Git Stash

Die obige Ausgabe stellt den letzten Stash wieder her. Wenn Sie nun den Status des Repositorys überprüfen, werden die an der Datei vorgenommenen Änderungen angezeigt. Betrachten Sie Folgendes Ausgabe:

Git Stash

Aus der obigen Ausgabe können Sie ersehen, dass das Repository vor dem Stashen in seinen vorherigen Zustand zurückversetzt wird. Die Ausgabe wird als „ Änderungen wurden nicht für die Festschreibung bereitgestellt .'

Bei mehr als einem Stash können Sie den Befehl „git stash apply“ gefolgt von der Stash-Index-ID verwenden, um den jeweiligen Commit anzuwenden. Es wird verwendet als:

Syntax:

 $ git stash apply 

Betrachten Sie die folgende Ausgabe:

Ausgabe:

Git Stash

Wenn wir keinen Stash angeben, nimmt Git den neuesten Stash und versucht, ihn anzuwenden.

Git-Stash-Änderungen

Wir können die Stashes und ihre Änderungen verfolgen. Um die Änderungen in der Datei vor und nach dem Stash-Vorgang anzuzeigen, führen Sie den folgenden Befehl aus:

Syntax:

 $ git stash show 

Der obige Befehl zeigt die gespeicherte Datei und die daran vorgenommenen Änderungen an. Betrachten Sie die folgende Ausgabe:

Ausgabe:

Git Stash

Die obige Ausgabe zeigt, dass zwei Dateien zwischengespeichert sind und zwei Einfügungen für sie durchgeführt werden.

Wir können genau verfolgen, welche Änderungen an der Datei vorgenommen werden. Um den geänderten Inhalt der Datei anzuzeigen, führen Sie den folgenden Befehl aus:

Syntax:

 $ git stash show -p 

Hier steht -p für den Teilstash. Der angegebene Befehl zeigt die bearbeiteten Dateien und Inhalte an. Beachten Sie die folgende Ausgabe:

Ausgabe:

Git Stash

Die obige Ausgabe zeigt den Dateinamen mit geändertem Inhalt. Es verhält sich genauso wie der Befehl git diff. Der git diff Der Befehl zeigt auch die genaue Ausgabe an.

arraylist.sort

Git Stash Pop (Erneutes Anwenden gespeicherter Änderungen)

Mit Git kann der Benutzer die vorherigen Commits erneut anwenden, indem er den Befehl „git stash pop“ verwendet. Die Popping-Option entfernt die Änderungen aus dem Stash und wendet sie auf Ihre Arbeitsdatei an.

Der Befehl „git stash pop“ ist dem Befehl „git stash apply“ ziemlich ähnlich. Der Hauptunterschied zwischen diesen beiden Befehlen besteht im Befehl stash pop, der den Stash nach seiner Anwendung vom Stapel löscht.

Syntax:

 $ git stash pop 

Der obige Befehl wendet die vorherigen Commits erneut auf das Repository an. Betrachten Sie die folgende Ausgabe.

Ausgabe:

Git Stash

Git Stash Drop (Unstash)

Der Git Stash Drop Der Befehl wird verwendet, um einen Stash aus der Warteschlange zu löschen. Im Allgemeinen wird der aktuellste Stash gelöscht. Bei der Verwendung des Befehls „stash drop“ ist Vorsicht geboten, da er nach einmaliger Anwendung nur schwer rückgängig gemacht werden kann.

Die einzige Möglichkeit, dies wiederherzustellen, besteht darin, das Terminal nach dem Löschen des Stashs nicht zu schließen. Der Stash-Drop-Befehl wird wie folgt verwendet:

Syntax:

 $ git stash drop 

Ausgabe:

Git Stash

In der obigen Ausgabe der neueste Stash (stash@{0}) wurde aus den angegebenen drei Verstecken entfernt. Der Befehl stash list listet alle verfügbaren Stashes in der Warteschlange auf.

Wir können auch einen bestimmten Stash aus der Warteschlange löschen. Um einen bestimmten Stash aus den verfügbaren Stashes zu löschen, übergeben Sie die Stash-ID im Befehl stash drop. Es wird wie folgt verarbeitet:

Syntax:

 $ git stash drop 

Angenommen, in meiner Warteschlange stehen zwei Stashes zur Verfügung, und ich möchte meinen neuesten Stash nicht löschen, sondern den älteren löschen. Dann wird es wie folgt betrieben:

 $ git stash drop stash@{1} 

Betrachten Sie die folgende Ausgabe:

Git Stash

In der obigen Ausgabe das Commit stash@{1} wurde aus der Warteschlange gelöscht.

Git Stash Clear

Der Git Stash klar Mit dem Befehl können alle verfügbaren Stashes auf einmal gelöscht werden. Um alle verfügbaren Stashes zu löschen, führen Sie den folgenden Befehl aus:

Syntax:

 $ git stash clear 

Dadurch werden alle im Repository vorhandenen Stashes gelöscht.

Ausgabe:

Git Stash

Alle Stashes werden in der obigen Ausgabe gelöscht. Der Befehl „git stash list“ ist leer, da im Repository keine Stashes verfügbar sind.

Git-Stash-Zweig

Wenn Sie einige Arbeiten in einem bestimmten Zweig gespeichert haben und an diesem Zweig weiterarbeiten. Dann kann es beim Zusammenführen zu einem Konflikt kommen. Daher ist es sinnvoll, die Arbeit in einem separaten Zweig zu speichern.

Mit dem Befehl „git stash branch“ kann der Benutzer seine Arbeit in einem separaten Zweig speichern, um Konflikte zu vermeiden. Die Syntax für diesen Zweig lautet wie folgt:

Syntax:

 $ git stash branch 

Der obige Befehl erstellt einen neuen Zweig und überträgt die darin gespeicherte Arbeit. Betrachten Sie die folgende Ausgabe:

etwas für Freunde

Ausgabe:

Git Stash

In der obigen Ausgabe wird die gespeicherte Arbeit in einen neu erstellten Testzweig übertragen. Dadurch wird der Zusammenführungskonflikt im Hauptzweig vermieden.