Im Falle einer früheren Rebase, die Sie nicht ordnungsgemäß abgebrochen haben, haben Sie jetzt (Git 2.12, Q1 2017) git rebase --quit
Siehe Commit 9512177 (12. November 2016) von Nguyễn Thái Ngọc Duy ( pclouds
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit 06cd5a1 , 19. Dezember 2016)
rebase
: --quit
Zur Bereinigungsbasis hinzufügen, alles andere unberührt lassen
Es gibt Fälle, in denen Sie sich entscheiden, eine laufende Rebase abzubrechen und etwas anderes zu tun, aber vergessen, zuerst " git rebase --abort
" zu tun . Oder die Rebase läuft schon so lange, bis Sie sie vergessen haben. Wenn Sie feststellen, dass es (z. B. durch Starten einer weiteren Rebase) bereits zu spät ist, Ihre Schritte zurückzuverfolgen. Die Lösung ist normalerweise
rm -r .git/<some rebase dir>
und mach weiter mit deinem Leben.
Es kann jedoch zwei verschiedene Verzeichnisse für geben <some rebase dir>
(und es erfordert offensichtlich einige Kenntnisse darüber, wie Rebase funktioniert), und der .git
Teil " " kann viel länger dauern, wenn Sie sich nicht im obersten Verzeichnis befinden oder sich in einem verknüpften Arbeitsbaum befinden. Und " rm -r
" ist sehr gefährlich .git
, ein Fehler könnte die Objektdatenbank oder andere wichtige Daten zerstören.
Geben Sie " git rebase --quit
" für diesen Anwendungsfall an und ahmen Sie einen Präzedenzfall nach, der " git cherry-pick --quit
" ist.
Vor Git 2.27 (Q2 2020) wurde der von " git merge --autostash
" erstellte Stash-Eintrag , um den anfänglichen schmutzigen Zustand beizubehalten, versehentlich auf " git rebase --quit
" verworfen , was korrigiert wurde.
Siehe Commit 9b2df3e (28. April 2020) von Denton Liu ( Denton-L
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit 3afdeef , 29. April 2020)
rebase
: Autostash-Eintrag in stash reflog
on speichern--quit
Unterzeichnet von: Denton Liu
In a03b55530a (" merge
: Teach - Autostash Option", 2020-04-07, Git v2.27.0 - Merge in Stapel 5 aufgeführt ) wurde die --autostash
Option für eingeführt git merge
.
(Siehe " Kann" git pull
"anstehende Änderungen automatisch speichern und einfügen? ")
Insbesondere wenn git merge --quit
ein Autostash-Eintrag ausgeführt wird, wird er im Stash-Reflog gespeichert.
Dies steht im Gegensatz zu dem aktuellen Verhalten, bei git rebase --quit
dem der Autostash-Eintrag einfach aus der Existenz entfernt wird.
Übernehmen Sie das Verhalten von git merge --quit
in git rebase --quit
und speichern Sie den Autostash-Eintrag im Stash-Reflog, anstatt ihn nur zu löschen.