Stashes in Git anwenden

John Wachira 23 August 2022
Stashes in Git anwenden

In diesem Artikel werden die verschiedenen Möglichkeiten zum Anwenden von Stashes in Git behandelt. Es zeigt die Schritte zum Anwenden eines bestimmten Git-Stashs.

Wenden Sie Stashes in Git an

Wir verwenden die git stash list, um unseren Git-Stash anzuzeigen, wenn Sie es nicht wissen.

pc@JOHN MINGW64 ~/Git (main)
$ git stash list
stash@{0}: WIP on main: 78129a6 Revert "$git status"
stash@{1}: WIP on main: 195e5c3 $git status

Sie können sehen, dass wir zwei Stashes in unserem Git-Zweig haben.

Wenn Sie ein git stash apply ausführen, wird auf die Spitze Ihres Stacks verwiesen. Wie unten gezeigt, müssen Sie ein Argument hinzufügen, wenn Sie einen bestimmten Stash anwenden möchten.

$ git stash apply stash@{stash_index}

In unserem Fall wollen wir den Index 1 Stash anwenden. Wir führen den folgenden Befehl aus.

$ git stash apply stash@{1}
Removing text.txt.txt
CONFLICT (modify/delete): Tutorial.txt deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of Tutorial.txt left in tree.
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    text.txt.txt
        modified:   text.txt.txt.bak
Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add/rm <file>..." as appropriate to mark resolution)
        deleted by us:   Tutorial.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .bash_history.bak
        Delftscopetech/
        New folder/
        file.patch

Wenn dieser Befehl jedoch angewendet wird, löscht er den Stash nicht aus Ihrer Liste. Sie sollten einen git stash pop-Befehl ausführen.

Es gibt einen Unterschied zwischen git stash apply und git stash pop, da letzteres Änderungen anwendet und den Stash aus Ihrer Liste löscht.

Sehen wir uns ein Beispiel an.

pc@JOHN MINGW64 ~/Git/Delftscopetech (main)
$ git stash pop stash@{0}
Removing README.md
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    README.md
no changes added to commit (use "git add" and/or "git commit -a")
Dropped stash@{0} (1531151482186b97f47e9b852ac29ddd194bd099)

Wir können sehen, wie Git unseren Stash anwendet und aus unserer obigen Ausgabe löscht.

Eine Alternative ist das Ausführen des git stash drop stash@{Index}. Um alle Stashes zu löschen, führen Sie den Befehl git stash clear aus.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Stash