如何在交互式编辑期间从vim中中止git rebase

192

当我进行交互式变基时,例如:

git rebase -i HEAD~3

交互式变基编辑器(在我的情况下是vim)会打开,让我编辑要变基的提交

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

如果我现在决定要中止变基并使用:q退出vim,但变基仍然开始了。我正在Windows上使用git版本1.9.0.msysgit.0

当然,我可以直接删除所有的pick行,但如果我要变基较长的历史记录,这可能是很费时的。还有其他方法吗?

如何退出交互式编辑器(vim)并中止变基?


你是否更喜欢使用其他编辑器,比如记事本?如果是的话,我有一个解决方案。 - Zombo
10
撤销 Git rebase 操作。 - vanduc1102
@vanduc1102 对我有用,但希望它是一个答案! - C Bauer
4个回答

361

如果您在编辑器中出现错误代码,则重新设置基础将被中止。

要在vim上带有错误代码退出,请执行以下操作

:cq

请参见此处vimdoc此处


53

这并不适用于合并提交。尝试进行交互式变基以包含至少一个合并提交,并将结果与原始状态进行比较。 - Mladen B.

13
如果您在Windows上使用Notepad++,可以按CtrlA选择全部内容,然后按DelBackspace删除并按CtrlS保存。如果文件为空,Git将中止rebase操作。
您还可以在运行git命令的命令提示符中按CtrlC来停止当前的rebase操作。然后运行git rebase --abort撤销该操作。

这是解决这个问题的通用方法,无论您使用vim还是任何其他编辑器。非常感谢! :) - Mladen B.

3
删除文本编辑器屏幕上的所有文本,然后使用默认提供的路径保存文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接