Git Stash scheint viel von dem zu tun, was ich will, außer dass es ein wenig schwierig ist, Skripte zu erstellen. Wenn Sie keine Änderungen haben, git stash; git stash pop
wird dies etwas anderes tun, als wenn Sie Änderungen in Ihrem Repository haben.
Es scheint, dass dies git stash create
die Antwort auf dieses Problem ist, und alles funktioniert, bis auf eine Sache… Ich kann den erstellten Vorrat nicht loswerden. Gibt es eine Möglichkeit, das Versteck loszuwerden?
Um 100% klar zu machen, was ich tue:
Erstellen Sie das Versteck:
~/tmp/a(master) $ git stash create
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message
Verwenden Sie das Versteck:
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
Löschen Sie den Stash: (außer dass dieses letzte Bit nicht funktioniert)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
git stash apply
hat funktioniert. Die git apply
Versuche, eine lokale Patch-Datei zu lesen, die nicht vorhanden ist. Um ehrlich zu sein, sollte es wahrscheinlich nicht da sein und es hätte nie funktionieren können. Ich bin vage versucht, es aus der Frage zu entfernen, aber da es in seiner jetzigen Form so vielen geholfen hat, werde ich es so lassen, wie es ist.
git apply
Lauf im zweiten Codefeld zum Zeitpunkt dieses Schreibens keinen Patch angewendet hat - die Fehlermeldung in der Ausgabe hat Ihnen dies mitgeteilt. Sie haben also versucht, einen Stash zu erstellen (was nicht funktioniert hat, siehe Kommentare unten). Wenden Sie einen Stash an, der nicht erstellt wurde, und löschen Sie dann einen Stash, der nicht erstellt wurde. Deshalb haben Sie nichts getan.