Git Stash: Der nützliche Zwischenspeicher in Git

Mit Git Stash können Sie Änderungen zwischenspeichern, ohne sie direkt zu committen. Es sind auch mehrere Stashes in einem Projekt möglich.

Mehr als nur eine Domain!

Hier finden Sie Ihre perfekte Domain - z.B. .de Domain + persönlicher Berater

E-Mail-Postfach
24/7 Support
Wildcard SSL

Was ist Git Stash?

Normalerweise funktioniert die Arbeit in Git folgendermaßen: Sie führen Änderungen in Ihrem lokalen Repository durch, testen diese genau und committen sie dann in den Main-Branch. Leider verläuft die Arbeit nicht immer so linear. Unter Umständen kann es sein, dass Sie an einer Baustelle arbeiten, dann aber in einen anderen Zweig wechseln müssen, bevor Sie die Funktion aus dem ersten Branch fertigstellen konnten. In diesem Fall wäre ein Commit nicht die richtige Wahl, da unfertige Änderungen hinzugefügt würden und es so unübersichtlich wird. Die Lösung ist Git Stash. Der Befehl speichert Ihre angefangenen Änderungen und stellt sie für Sie zurück.

Das betrifft sämtliche Änderungen, die Sie bisher noch nicht committed haben. Möchten Sie dann auf diese Dateien zurückgreifen, holen Sie sie einfach wieder vom Git Stash und stellen die Änderungen in Ruhe fertig. So verlieren Sie keine Fortschritte, bewahren Ihre Arbeit und haben gleichzeitig die Freiheit, flexibel an anderen Punkten weiterzuarbeiten. Ohne Git Stash würde Ihnen bei einem Git Checkout entweder eine Fehlermeldung angezeigt werden oder Sie würden wichtige Änderungen sogar verlieren.

Syntax und Funktionsweise von Git Stash

Git Stash fungiert also als eine Art Zwischenspeicher für Ihren aktuellen Branch. Die grundsätzliche Syntax sieht so aus:

git stash

An einem einfachen Beispiel zeigen wir Ihnen die Funktionsweise Schritt für Schritt. Stellen Sie sich dafür vor, dass Sie an zwei Branches arbeiten. Aktuell nehmen Sie Änderungen am ersten Branch vor, werden dann allerdings von Ihrem Team darüber informiert, dass am zweiten Branch ebenfalls etwas geändert werden muss. Mit Git Stash gehen Sie vor wie folgt:

  1. Speichern Sie Ihre Änderungen am ersten Branch.
  2. Nutzen Sie den Befehl „git stash“.
  3. Wechseln Sie zum zweiten Branch und nehmen Sie dort die notwendigen Änderungen vor.
  4. Committen Sie Ihre Änderungen im zweiten Branch.
  5. Wechseln Sie zurück zum ersten Branch.
  6. Nutzen Sie den Befehl „git stash pop“, um die gespeicherten Fortschritte wieder aufzurufen.

Weitere Optionen von Git Stash

Neben der oben erklärten Variante kennt Git Stash noch ein paar weitere Optionen. Die wichtigsten sind folgende:

git stash -u

Berücksichtigt auch Dateien, die nicht getrackt wurden.

git stash -a

Berücksichtigt alle Dateien, die ignoriert oder nicht getrackt wurden.

git stash -p

Ermöglicht es Ihnen, nur bestimmte Dateien auszuwählen und zu stashen.

Stashes auflisten

Der Einsatz von Git Stash ist dabei nicht begrenzt. Sie können den Befehl also auch mehrere Male anwenden und so zahlreiche Speicherschritte hinterlegen. Dann haben Sie die Möglichkeit, Ihre Git Stashes aufzulisten und so einen guten Überblick über Ihren Speicher zu erhalten. Dies ist der passende Befehl:

git stash list

Die Einträge werden Ihnen dann in umgekehrter chronologischer Reihenfolge angezeigt. Der aktuelle Git Stash erscheint also als erstes.

Im Normalfall werden die einzelnen Stashes einfach als „WIP“ (Work in progress) ausgewiesen. Da dies bei mehreren Git Stashes schnell unübersichtlich werden kann, ist es empfehlenswert, die einzelnen Speicherstände mit einer Beschreibung zu versehen. Dies ist der entsprechende Befehl:

git stash save "Hier steht Ihre Beschreibung"

Git Stash pop und apply

Mit dem Befehl „git stash pop“ wird der letzte Git Stash erneut ausgewählt und angezeigt. Möchten Sie allerdings auf einen anderen Speicherstand zurückgreifen, können Sie dies mit einem Argument ausdrücken. Soll beispielweise der zweite Git Stash angezeigt werden, setzen Sie den Wert auf 1 (da von der Null aus gezählt wird). Das sieht so aus:

git stash pop stash@{1}

Eine Alternative zu „pop“ ist „apply“. Der Unterschied: „pop“ löscht den jeweiligen Git Stash aus dem Speicher und setzt ihn wieder in den aktuellen Branch ein. „apply“ bewahrt den Stash im Speicher.

Git Stash aufräumen

Gerade weil Sie die Option haben, mehrere Git Stashes zu erstellen, ist es wichtig, dass Sie den Git Stash zwischenzeitlich aufräumen, damit es nicht zu unübersichtlich wird. Auch hierfür gibt es zwei Befehle, die Sie nutzen können:

git stash clear

Mit diesem Befehl leeren Sie den gesamten Git Stash.

Möchten Sie nur einen bestimmten Stash aus der Liste entfernen, ist dies der passende Command:

git stash drop <stash_id></stash_id>

Git Stashes aufrufen

Die Zusammenfassung Ihres Git Stashes können Sie mit folgendem Befehl abrufen:

git stash show

Um zusätzlich einen Einblick in den vollständigen Diff zu erhalten, nutzen Sie diesen Command:

git stash show -p

Ein nützliches Tool für die Arbeit mit Git

Git Stash erleichtert Ihnen also die Arbeit an einem Projekt und sorgt dafür, dass auch unfertige Änderungen nicht verloren gehen. In unserem Artikel über Git-Commands finden Sie weitere nützliche Befehle. Für die regelmäßige Nutzung des Versionskontrollsystems ist auch unser Git Cheat Sheet mit PDF-Download empfehlenswert.

Tipp

Deploy Now von IONOS ist die beste Lösung für Ihre Websites und Apps! Profitieren Sie von einem schnellen Setup, optimierten Workflows und maximaler Skalierbarkeit. Dazu haben Sie die Wahl zwischen verschiedenen günstigen Tarifen.