So brechen Sie eine Git-Rebase während der interaktiven Bearbeitung aus vim heraus ab

138

Wenn ich eine interaktive Rebase mache, z

git rebase -i HEAD~3

Der interaktive Editor für die Rebase (in meinem Fall vim) wird geöffnet, damit ich die Commits für die Rebase bearbeiten kann

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

Wenn ich jetzt beschließe, die Rebase abzubrechen und vim mit :qder Rebase zu beenden, wird trotzdem begonnen. Ich verwende die Git-Version 1.9.0.msysgit.0unter Windows.

Natürlich kann ich einfach alle pickZeilen löschen , aber es könnte viel zu tun sein, wenn ich einen längeren Verlauf neu begründe. Gibt es eine andere Art und Weise?

Wie kann ich den Rebase Interactive Editor (vim) beenden und den Rebase abbrechen?

René Link
quelle
Möchten Sie lieber einen anderen Editor wie Notepad verwenden? Wenn ja, habe ich eine Lösung dafür
Steven Penny
5
git rebase --abort
Vanduc1102
@ vanduc1102 Funktioniert für mich, wünschte, es wäre eine Antwort!
C Bauer

Antworten:

256

Wenn Sie den Editor mit einem Fehlercode verlassen, wird die Rebase abgebrochen.

Um mit einem Fehlercode auf vim zu beenden, gehen Sie wie folgt vor

:cq

Siehe hier und vimdoc hier .

Telmo Costa
quelle
6
Weniger tippen, gleiches Ergebnis
Zach Posten
44

Löschen Sie einfach alle Zeilen, die keine Kommentare sind, aus der Datei. Speichern Sie es dann im standardmäßig angegebenen Pfad und beenden Sie den Editor.

Infolgedessen wird git in dieser Rebase einfach nichts tun.

Um alle Zeilen in vim zu löschen, können Sie verwenden

:%d|x

Dann speichern und beenden.

Löschen Sie alle Dateizeilen in Vim

Wie verlasse ich den Vim-Editor?

VIM - mehrere Befehle in derselben Zeile

Steven Penny
quelle
Dies ist bei den Merge-Commits nicht der Fall. Versuchen Sie, die interaktive Rebase so durchzuführen, dass mindestens ein Merge-Commit enthalten ist, und vergleichen Sie das Ergebnis mit dem ursprünglichen Status.
Mladen B.
9

Wenn Sie beispielsweise Notepad ++ unter Windows verwenden:

CtrlAalles auswählen, dann Deloder Backspacelöschen und CtrlSspeichern. Git bricht die Rebase ab, wenn die Datei leer ist.

Sie können auch auf CtrlCdie Eingabeaufforderung klicken, an der git ausgeführt wird, um den aktuellen Rebase-Befehl zu stoppen. Führen git rebase --abortSie dann aus , um es zurückzusetzen.

CodeManX
quelle
Dies ist der allgemeine Weg, um dieses Problem zu lösen, unabhängig davon, ob Sie vim oder einen anderen Editor verwenden. Vielen Dank! :)
Mladen B.
3

Löschen Sie den gesamten Text in Ihrem Texteditor und speichern Sie die Datei unter dem angegebenen Standardpfad.

mcandre
quelle