Tutorials  /  Linux Basics

Git Stash Anleitung: Änderungen zwischenspeichern & verwalten

Ccentron Redaktion · August 2025 ·8 Min. Lesezeit ·Linux Basics, Tutorial

Mit dem Befehl git stash können Entwickler nicht übertragene Änderungen im Arbeitsverzeichnis vorübergehend sichern. Das ist besonders nützlich, wenn man ohne Commit zu einem anderen Branch oder einer Aufgabe wechseln muss. Git speichert dabei sowohl gestagte als auch ungestagte Änderungen in einem Stapel und entfernt sie aus der Arbeitskopie, sodass sie später wiederhergestellt werden können.

Diese Anleitung zeigt, wie man git stash verwendet, um den Fortschritt zu sichern, Stashes wiederherzustellen oder zu verwerfen, nicht getrackte Dateien einzubeziehen und mehrere gesicherte Zustände effizient zu verwalten.

Vergleich: git stash vs. git commit

Funktion Git Stash Git Commit
Zweck Sichert Änderungen vorübergehend ohne Commit Speichert Änderungen dauerhaft im Repository
Anwendungsfall Beim Unterbrechen einer Aufgabe oder Branch-Wechsel Wenn Änderungen abgeschlossen und bereit für den Verlauf sind
Verlauf betroffen Nein Ja – wird dem Projektverlauf hinzugefügt
Ungetrackte Dateien Optional mit z. B. --include-untracked Ja, sobald mit git add hinzugefügt
Wiederherstellung Kann erneut angewendet oder gelöscht werden Kann rückgängig gemacht oder zurückgesetzt werden, ist aber dauerhaft
Standardbefehl git stash git commit -m "Nachricht"
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Schnellstart

Verwende diese Befehle für typische Stash-Vorgänge:

Konsole
# Alle aktuellen Änderungen sichern
$ git stash

# Mit Beschreibung sichern
$ git stash push -m "Work in progress"

# Alle Stashes anzeigen
$ git stash list

# Letzten Stash anwenden und entfernen
$ git stash pop

# Bestimmten Stash entfernen
$ git stash drop stash@{1}

# Alle Stashes löschen
$ git stash clear

Befehlssyntax im Überblick

git stash [OPTIONEN]

  • save: Speichert gestagte und ungestagte Änderungen im Stapel
  • pop: Wendet den neuesten Stash an und entfernt ihn
  • apply: Wendet den neuesten Stash an, behält ihn aber im Stapel
  • list: Zeigt alle gespeicherten Stashes an
  • show: Zeigt Zusammenfassung oder Diff eines Stashs
  • drop: Entfernt einen bestimmten Stash

Wichtige git stash Befehle

Alle offenen Änderungen sichern

Konsole
$ git stash

Speichert sämtliche Änderungen und setzt das Verzeichnis auf den letzten Commit zurück.

Stash mit Beschreibung erstellen

Konsole
$ git stash push -m "message"

Fügt dem Stash eine Beschreibung zur späteren Identifikation hinzu.

Ungetrackte Dateien einschließen

Konsole
$ git stash -u

Erfasst sowohl getrackte als auch ungetrackte Dateien.

Alle Stashes anzeigen

Konsole
$ git stash list

Listet alle Stashes mit Referenzen wie stash@{0} auf.

Stash-Übersicht anzeigen

Konsole
$ git stash show

Unterschiede im Stash vollständig anzeigen

Konsole
$ git stash show -p

Letzten Stash anwenden

Konsole
$ git stash apply

Letzten Stash anwenden und entfernen

Konsole
$ git stash pop

Branch aus einem Stash erstellen

Konsole
$ git stash branch <branch-name>

Erklärung häufiger Optionen

  • -u oder --include-untracked: Erfasst ungetrackte Dateien zusätzlich
  • -m: Ermöglicht das Hinzufügen einer Nachricht zum Stash
  • -p: Aktiviert interaktives Stashen einzelner Codeabschnitte

Mehrere Stashes verwalten

Bei paralleler Arbeit an mehreren Aufgaben speichert Git Stashes als Stapel (stash@{n}), wobei n = 0 die aktuellste Version ist. Die folgenden Befehle helfen, gezielt mit einzelnen Einträgen zu arbeiten:

Alle Stashes anzeigen

Konsole
$ git stash list

Bestimmten Stash anwenden

Konsole
$ git stash apply stash@{n}

Bestimmten Stash entfernen

Konsole
$ git stash drop stash@{n}

Alle Stashes löschen

Konsole
$ git stash clear

Warnung: git stash clear löscht alle gespeicherten Stashes dauerhaft und kann nicht rückgängig gemacht werden. Überprüfe vorher deine Liste!

Beispielhafte Arbeitsweise

So gehst du beim Arbeiten mit Stashes vor:

Dateien ändern

Konsole
$ echo "<h1>Header</h1>" > index.html
$ echo "console.log('Debug');" > app.js

Stash mit Beschreibung speichern

Konsole
$ git stash push -m "UI update: Header and debug script"

Ausgabe: Arbeitsverzeichnis mit Beschreibung gespeichert.

Weitere Änderungen vornehmen und erneut stashen

Konsole
$ echo "<footer>Footer</footer>" >> index.html
$ git stash push -m "Added footer component"

Stash-Liste überprüfen

Konsole
$ git stash list

Ausgabe:

  • stash@{0}: Added footer component
  • stash@{1}: UI update: Header and debug script

Älteren Stash anwenden

Konsole
$ git stash apply stash@{1}

Die Änderungen aus stash@{1} werden wiederhergestellt, bleiben aber in der Liste erhalten.

Verwendeten Stash löschen

Konsole
$ git stash drop stash@{1}

Die Ausgabe bestätigt die erfolgreiche Löschung des angegebenen Stash-Eintrags.

Git Stash bereinigen

Wenn du häufig Aufgaben unterbrichst, kann deine Stash-Liste schnell wachsen. Um den Überblick zu behalten, bietet Git Befehle, um einzelne oder alle Einträge zu entfernen. Nachfolgend findest du eine sichere Vorgehensweise zur Bereinigung deiner Stashes.

Befehlsübersicht

Einzelnen Stash löschen:

Konsole
$ git stash drop stash@{n}

Entfernt den Stash mit Index stash@{n}, ohne andere Einträge zu beeinflussen.

Letzten Stash entfernen:

Konsole
$ git stash drop

Ohne Indexangabe wird stash@{0} gelöscht.

Alle Stashes entfernen:

Konsole
$ git stash clear

Warnung: git stash clear löscht alle Einträge unwiderruflich. Prüfe vorher deine Liste.

Beispiel für saubere Bereinigung

Nutze diesen Ablauf, um Stashes gezielt anzuwenden, zu committen und zu löschen:

Stashes anzeigen:

Konsole
$ git stash list

Beispielausgabe:

  • stash@{0}: On main: Recent component styling
  • stash@{1}: On main: API endpoint integration
  • stash@{2}: On dashboard-feature: Error handling fix

Älteren Stash anwenden und löschen:

Konsole
$ git stash pop stash@{2}

Wendet stash@{2} an und entfernt ihn aus der Liste.

Änderungen committen:

Konsole
$ git commit -am "Fix error handling in authentication flow"

Weiteren Stash entfernen:

Konsole
$ git stash drop stash@{1}

Hinweis: Nach dem Löschen eines Eintrags werden alle weiteren neu nummeriert.

Alle Stashes löschen:

Konsole
$ git stash clear

Ungetrackte oder ignorierte Dateien stashen

Standardmäßig sichert git stash nur Änderungen an getrackten Dateien. Um auch neue oder ignorierte Dateien zu speichern, verwende spezielle Flags.

Ungetrackte Dateien einbeziehen

Konsole
$ git stash push -u

Sichert alle Änderungen, inklusive nicht hinzugefügter Dateien.

Alles stashen (inkl. ignorierte Dateien)

Konsole
$ git stash push -a

Warnung: Damit werden auch Build-Artefakte und Abhängigkeiten gesichert. Nur mit Vorsicht verwenden.

Stash mit ungetrackten Dateien inspizieren

Konsole
$ git stash show -p -u stash@{0}

Beispiel: Ungetrackte Dateien stashen und wiederherstellen

Status im Arbeitsverzeichnis prüfen

Konsole
$ git status

Beispielausgabe:

  • user-profile.html wurde verändert
  • login-validation.js ist ungetrackt

Alle Dateien stashen (inkl. ungetrackter)

Konsole
$ git stash push -u -m "WIP: Auth validation script"

Arbeitsverzeichnis ist sauber

Konsole
$ git status

Erwartete Ausgabe: nichts zu committen, Arbeitsbaum ist sauber.

Gespeicherte Änderungen zurückholen

Konsole
$ git stash pop

Beispielausgabe:

  • Datei geändert: user-profile.html
  • Ungetrackte Datei: login-validation.js
  • Entfernter Eintrag: refs/stash@{0}

Fazit

Diese Anleitung zeigt dir, wie du mit git stash effektiv Zwischenschritte sicherst, mehrere Stashes verwaltest und auch ungetrackte bzw. ignorierte Dateien nicht verlierst. Ob für einen sauberen Arbeitsstand oder zum Kontextwechsel – Stashing hält deinen Code sauber und flexibel.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren