当我使用git commit --amend
或git rebase -i
命令时,vim会打开让我进行修改。如果在不做任何更改的情况下退出vim,git reflog
中仍然会显示一次提交。
如何在不提交任何更改的情况下退出编辑器?
当我使用git commit --amend
或git rebase -i
命令时,vim会打开让我进行修改。如果在不做任何更改的情况下退出vim,git reflog
中仍然会显示一次提交。
如何在不提交任何更改的情况下退出编辑器?
cq
命令时加上 !
,这会强制 vim 进行保存操作。如果不加 !
,则会在不保存的情况下关闭编辑器并出现错误。 - belka:q!
可以足够(在纯提交中;当您不是在修正时),但如果您像我一样,很有可能已经(甚至无意识地)保留了编辑后的信息。:cq[uit]!
命令在Vim中执行此操作。
如果您想让 vim
出现错误并且不保存,请使用没有!
的cq
。:cq
加1分,但是:q!
减1分——这并不正确,它只是保留了预修改的提交消息并应用所有实际暂存的更改。 - CB Bailey:q!
在这里不起作用,就像普通提交的情况下一样!?因为这个原因,我弄乱了我的存储库,修改了我不知道的未提交添加的文件。 - maciekskgit commit --amend
或 git rebase -i
时不进行更改,只需删除消息(并保存)。Git所做的就是查找非空消息以查看是否发生了有效提交。由于有提交消息(因为您之前提交了一些内容),git认为这是有效的提交或rebase。Git应用程序运行编辑器应用程序,如果编辑器应用程序返回失败(非零退出代码),Git应用程序会识别此情况并停止进一步处理。
在Vim中,您可以使用:cq!
执行此操作。
来自Vim手册:
:cq :cquit
:cq[uit][!] Quit Vim with an error code, so that the compiler
will not compile the same file again.
WARNING: All changes in files are lost! Also when the
[!] is not used. It works like ":qall!" :qall,
except that Vim returns a non-zero exit code.
:q!
退出(即使退出码为0),它也会停止。但是对于git来说这样做没问题。无论对于哪种版本控制方式,如果编辑器返回非零退出码,则不行。cq
命令时加上 !
,这会强制 vim 进行保存操作。如果不加 !
,则会在关闭编辑器时出现错误并且不会保存。 - belka
git reflog
仅适用于该工作副本。它是您 HEAD 的时间顺序历史记录,而不是逻辑历史记录。 - Ben Jackson:q!
。 - Jonathon Reinhart