退出Vim而不提交Git中的更改

j0f*_*0fb 40 git vim git-commit

当我使用git commit --amend或者git rebase -i,vim为我打开进行更改.如果我改变主意并退出vim而不做任何更改,那么仍会提交一个提交内容git reflog.

如何在不提交任何内容的情况下退出编辑器?

小智 57

:cq!
Run Code Online (Sandbox Code Playgroud)

这将强制Vim出错,并且不会保存任何更改.链接到Vim手册.

  • +++++++太神奇了! (2认同)

Ing*_*kat 31

当你没有做出改变并保存它们时,:q!就足够了(在一个简单的提交中;当你没有修改时),但如果你像我一样,你很可能已经(甚至无意识地)坚持编辑过的信息.

如果编辑器以不成功的退出状态退出,Git(以及使用Vim编辑消息的其他此类工具)将中止整个过程(并忽略对消息的任何保存的更改).您可以使用该:cq[uit]!命令在Vim中执行此操作.

  • 对于`:cq`为+1,对于`:q!`为-1 - 这不正确,它只保留预先修改的提交消息并应用任何实际的分阶段更改. (15认同)

FDi*_*off 18

为了让git在你执行时没有做出改变git commit --amendgit rebase -i.

只需删除邮件(并保存)即可.所有git都会查找非空消息,以查看是否发生了有效的提交.由于存在提交消息(因为您之前提交了某些内容),因此git认为它是有效的提交或rebase.

  • @Shanimal 无评论就足够了。 (2认同)