W przypadku wcześniejszej bazy, której nie przerwałeś poprawnie, teraz (Git 2.12, Q1 2017) masz git rebase --quit
Zobacz commit 9512177 (12 listopada 2016) autor: Nguyễn Thái Ngọc Duy ( pclouds) .
(Połączone przez Junio C Hamano - gitster- w commit 06cd5a1 , 19 grudnia 2016)
rebase: dodaj --quitdo bazy czyszczenia, pozostaw wszystko inne nietknięte
Są sytuacje, w których decydujesz się przerwać trwającą bazę i przejść do zrobienia czegoś innego, ale najpierw zapominasz zrobić „ git rebase --abort” . Albo rebase trwa już tak długo, że o tym zapomniałeś. Zanim zdasz sobie sprawę, że (np. Uruchamiając inną bazę) jest już za późno, aby odtworzyć twoje kroki. Rozwiązanie jest normalne
rm -r .git/<some rebase dir>
i kontynuuj swoje życie.
Ale mogą istnieć dwa różne katalogi dla <some rebase dir>(i oczywiście wymaga to pewnej wiedzy o tym, jak działa rebase), a " .git" część może być znacznie dłuższa, jeśli nie jesteś w top-reir lub w połączonym drzewie roboczym. A „ rm -r” jest bardzo niebezpieczne .git, błąd może zniszczyć bazę danych obiektów lub inne ważne dane.
Podaj „ git rebase --quit” w tym przypadku użycia, naśladując precedens „ git cherry-pick --quit”.
Przed Git 2.27 (Q2 2020) wpis skrytki utworzony przez „ git merge --autostash” w celu utrzymania początkowego stanu nieczystości został odrzucony przez pomyłkę po „ git rebase --quit”, co zostało poprawione.
Zobacz zatwierdzenie 9b2df3e (28 kwietnia 2020 r.) Przez Denton Liu ( Denton-L) .
(Połączone przez Junio C. Hamano - gitster- w comm 3afdeef , 29 kwietnia 2020)
rebase: zapisz wpis autostash stash reflogna--quit
Podpisano: Denton Liu
W a03b55530a („ merge: uczysz - opcja autostash”, 2020-04-07, Git v2.27.0 - scalanie wymienione w partii nr 5 ), --autostashopcja została wprowadzona dla git merge.
(Zobacz „ Czy„ git pull”może automatycznie ukrywać i usuwać oczekujące zmiany? ”)
W szczególności, gdy git merge --quitjest uruchamiany z obecnym wpisem automatycznego zatrzymania, jest zapisywany w dzienniku zapasów skrytki.
Kontrastuje to z obecnym zachowaniem polegającym na git rebase --quittym, że wpis automatycznego zatrzymania po prostu po prostu przestaje istnieć.
Przyjąć zachowanie git merge --quitsię git rebase --quiti zapisz wpis autostash do reflog stash zamiast po prostu usunąć.