Jak przerwać rebase git z wnętrza vima podczas interaktywnej edycji


138

Kiedy robię interaktywną rebase np

git rebase -i HEAD~3

otwiera się interaktywny edytor rebase (w moim przypadku vim), aby umożliwić mi edycję zatwierdzeń do rebase

pick c843ea2 Set Vim column limit to 80 (OS X)
pick fc32eac Add Bash alias for `pbcopy` (OS X)
....

Jeśli teraz zdecyduję, że chcę przerwać rebase i zamknąć vima, i :qtak uruchomi się rebase. Używam wersji git w systemie 1.9.0.msysgit.0Windows.

Jasne, że mogę po prostu usunąć wszystkie pickwiersze, ale może to być dużo do zrobienia, jeśli przebuduję dłuższą historię. Czy jest inny sposób?

Jak mogę wyjść z interaktywnego edytora rebase (vim) i przerwać rebase?


Czy wolisz użyć innego edytora, takiego jak Notatnik? Jeśli tak, mam na to rozwiązanie
Steven Penny

5
git rebase --abort
vanduc1102

@ vanduc1102 Działa dla mnie, szkoda, że ​​nie była to odpowiedź!
C Bauer

Odpowiedzi:


258

Jeśli wyjdziesz z edytora z kodem błędu, rebase zostanie przerwany.

Aby wyjść z kodem błędu na vimie, zrób

:cq

Zobacz tutaj i vimdoc tutaj .


6
Mniej pisania, ten sam wynik
Zach Posten

44

Po prostu usuń wszystkie wiersze, które nie są komentarzami z pliku. Następnie zapisz go w domyślnej ścieżce i zamknij edytor.

W rezultacie git po prostu nie zrobi nic w tej rebase.

Aby usunąć wszystkie linie w vimie, możesz użyć

:%d|x

Następnie zapisz i zakończ.

usuń wszystkie linie pliku w Vimie

Jak wyjść z edytora Vima?

VIM - wiele poleceń w tej samej linii


nie dotyczy to zatwierdzeń scalających. spróbuj wykonać interaktywną rebase, aby uwzględnić co najmniej jedno zatwierdzenie scalające i porównać wynik ze stanem oryginalnym.
Mladen B.

9

Jeśli korzystasz na przykład z Notepad ++ w systemie Windows:

CtrlAwybrać wszystko, a następnie Delalbo Backspaceskasować i CtrlSzapisać. Git przerwie rebase, jeśli plik jest pusty.

Możesz także nacisnąć CtrlCw wierszu polecenia, w którym działa git, aby zatrzymać bieżące polecenie rebase. Następnie biegnij, git rebase --abortaby go przywrócić.


to jest ogólny sposób rozwiązania tego problemu, bez względu na to, czy używasz vima, czy innego edytora. wielkie dzięki! :)
Mladen B.

3

Usuń cały tekst z ekranu edytora tekstu, a następnie zapisz plik z domyślną ścieżką.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.