How to abort a git rebase from inside vim during interactive editing

GitVimGit Rebase

Git Problem Overview


When I do an interactive rebase, e.g.

git rebase -i HEAD~3

the rebase interactive editor (vim in my case) opens to let me edit the commits to rebase

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

If I now decide that I want to abort the rebase and quit vim using :q the rebase starts anyway. I'm using git version 1.9.0.msysgit.0 on windows.

Sure I can just delete all pick lines, but it might be a lot to do if I rebase a longer history. Is there another way?

How can I quit the rebase interactive editor (vim) and abort the rebase?

Git Solutions


Solution 1 - Git

If you exit the editor with an error code, the rebase will be aborted.

To exit with an error code on vim, do

:cq

See here and vimdoc here.

Solution 2 - Git

Just delete all the lines that are not comments from the file. Then save it to the default supplied path and exit the editor.

As a result git will just do nothing in this rebase.

To delete all lines in vim you can use

:%d|x

Then save and quit.

delete all lines of file in Vim

https://stackoverflow.com/q/11828270/#11828573

https://stackoverflow.com/q/3249275/#3249303

Solution 3 - Git

If you're using Notepad++ on Windows for instance:

CtrlA to select everything, then Del or Backspace to delete and CtrlS save. Git will abort the rebase if the file is empty.

You may also hit CtrlC in the command prompt where git is running to stop the current rebase command. Then run git rebase --abort to revert it.

Solution 4 - Git

Delete all text in your text editor screen, then save the file with the default supplied path.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRené LinkView Question on Stackoverflow
Solution 1 - GitTelmo CostaView Answer on Stackoverflow
Solution 2 - GitZomboView Answer on Stackoverflow
Solution 3 - GitCodeManXView Answer on Stackoverflow
Solution 4 - GitmcandreView Answer on Stackoverflow