Zum Inhalt springen

Stash

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 30.10.2026

Ein Stash ist ein Ablageplatz für angefangene Arbeit, die kurz aus dem Weg soll. Git nimmt die Änderungen aus dem Arbeitsverzeichnis, legt sie beiseite und stellt den letzten Commit-Stand her. Später holst du sie zurück. Englisch to stash heißt verstauen.

Stash

Ein Ablageplatz für angefangene Arbeit, die kurz aus dem Weg soll.
Beispiel: „Der Stash hielt die halbfertige Änderung, bis der dringende Fehler behoben war.“

Angelegt mit git stash, zurückgeholt mit git stash pop. Mehrere Stashes liegen als Stapel übereinander.

Abgrenzung zum Commit: Ein Stash gehört zu keinem Branch, wird nicht gepusht und existiert nur auf deinem Rechner.

Wozu ein Stash gut ist

Für die kurze Unterbrechung. Ein Branchwechsel mit ungesicherten Änderungen geht nicht immer, und ein Commit für einen halbfertigen Stand will man auch nicht. Der Stash ist der Ausweg dazwischen.

Dauert die Unterbrechung länger, ist ein Worktree die bessere Wahl. Dann bleibt die angefangene Arbeit dort liegen, wo sie ist.

Warum ein Stash kein Lager sein sollte

Weil er unsichtbar ist. Er taucht in keinem Status auf, gehört zu keinem Branch und hat keine Beschreibung außer dem, was du ihm mitgibst. Nach zwei Wochen weiß niemand mehr, was in Stash Nummer drei lag und wofür.

Hinzu kommt, dass er beim Zurückholen auf den dann aktuellen Stand trifft. Hat sich dort etwas geändert, gibt es einen Konflikt, und der ist umso größer, je länger der Stash lag.

Was beim Stash oft übersehen wird

Dass unversionierte Dateien in der Voreinstellung liegen bleiben. Wer eine neue Datei angelegt hat und stasht, findet sie danach weiterhin im Arbeitsverzeichnis; nur die Änderungen an bekannten Dateien sind weg.

Ebenso bleibt die Staging Area nicht erhalten: Was vorgemerkt war, ist nach dem Zurückholen wieder gewöhnlich geändert. Für den Alltag ist das selten wichtig und einmal im Jahr verwirrend.

Siehe auch:

Arbeitsverzeichnis (Git)

Der Ordner mit den Dateien, an denen du gerade arbeitest.

#Deployment & Versionierung

Commit

Ein festgehaltener Stand des Projekts, mit Zeitpunkt, Urheber und Begründung.

#Deployment & Versionierung

Branch

Ein eigener Strang der Geschichte, auf dem gearbeitet wird, ohne den Hauptstand zu berühren.

#Deployment & Versionierung

Worktree

Ein zweites Arbeitsverzeichnis zu demselben Repository.

#Deployment & Versionierung

Staging Area

Die Vormerkliste für das, was in den nächsten Commit soll.

#Deployment & Versionierung

Git

Das Werkzeug, das jede Änderung an einem Projekt festhält und mehrere Stände nebeneinander erlaubt.

#Deployment & Versionierung