Ich habe versehentlich git stash pop
zweimal ausgeführt, um mir einen Platz zu verschaffen, wo ich sein wollte. Wie mache ich den letzten Popup rückgängig? Ich möchte den ersten Pop aber nicht den zweiten, also reset --hard HEAD
wird es nicht für mich tun.
"Das Rückgängigmachen von" git stash pop
ist irgendwie schmerzhaft, wenn Sie nicht die rohen Commit-IDs für Ihre Stashs irgendwo aufgelistet haben (z. B. auf Ihrem Bildschirm).
Die git stash
-Dokumentation enthält Anweisungen (am Ende ) für die Wiederherstellung fallen gelassener Fälle. Dies sind die Anweisungen, die Sie wollen, da pop
einfach " apply
und dann drop
" ist. Das heißt, wenn Sie beide Stashes wiederherstellen, können Sie git reset --hard
verwenden, um alles wiederherzustellen, git stash pop
(oder -sicherer, weil es nicht "ablegt" - git stash apply
) wollte verwenden, und dann alles überprüfen.
Wenn Sie beide Taschen finden und wiederherstellen können, würde ich das wahrscheinlich tun.
Wenn Sie nur den zweiten Stash finden (den, den Sie "nicht anwenden" wollen), können Sie versuchen, ihn umzukehren.
Hier ist die "Beschwörung" aus der Dokumentation:
%Vor%
Wenn Sie das ausführen, erhalten Sie eine Liste der Commits, die jedes w
commit von jedem darstellen "Verstecksack" . Lassen Sie uns sagen, dass es etwas wie folgt ausgibt:
Die date
-Zeile ist hier nützlich, da es der Zeitpunkt ist, an dem der Stash gemacht wurde. Es ist ziemlich schwer, diese beiden Löcher auseinander zu halten, oder? Speichern Sie die rohen SHA-1-IDs irgendwo und führen Sie git stash show -p
auf jedem aus. Wenn Sie einen wertvollen finden, geben Sie ihm einen Namen:
Wenn Sie sicher sind, welche die richtigen sind, können Sie Dinge wie git reset --hard
und dann git stash apply
erledigen. Sie können nun anhand der oben angegebenen Tag-Namen Folgendes anwenden:
Wenn alles so gespeichert und übergeben wurde, wie Sie es möchten, können Sie die verschiedenen "recover" -Tags löschen. (Beachten Sie, dass Sie einen beliebigen Namen verwenden können. Es gibt nichts besonderes an recover-exp-
, das ist nur etwas, was ich hier gemacht habe.)
Ich glaube nicht, dass Sie den letzten Pop einfach wieder rückgängig machen können. Sie werden wahrscheinlich nur zu diesem Zeitpunkt mit den Konflikten umgehen müssen, wenn Sie beim ersten Mal etwas brauchen.
Wenn Sie in Zukunft Probleme wie diese vermeiden möchten, können Sie sich auf lokale Zweige festlegen, anstatt auf Speicher zu setzen. Es ist mühsamer, aber widerstandsfähiger.
Tags und Links git