当VI在屏幕上等待提交消息时,如何停止Git提交?

时间:2010-12-01 10:38:01

标签: git

我已经要求Git在git bash中执行提交,它总是提升VI。

我现在希望取消提交,如何阻止从此处继续提交?

3 个答案:

答案 0 :(得分:306)

您有两种选择:

  • 提供空提交消息。如果它是新提交但您尚未保存消息,则只需使用:q!(退出而不保存)。如果您已经保存(或者您正在修改先前的提交),只需删除整个日志消息并再次保存。这可以通过Vim中的 ggdG + :wq来完成。

  • 让编辑器以非零退出代码退出。在Vim中,您可以使用:cq(退出并显示错误代码)。

值得注意的是,您始终可以将工作副本重置为使用git reset HEAD^进行提交之前的状态。

答案 1 :(得分:56)

    修改提交时,
  • :q!不起作用。它没有更新 提交消息,但它执行修正:-(
  • :cq完全取消修正案。

答案 2 :(得分:2)

总结一下:

  • 创建新提交时(即git commit)退出使用:q!
  • 修改(即git commit --amend)时,删除提交消息(只有前几行以#开头),例如按住v并使用箭头键选择它,然后按Delete键。 退出:wq以应用更改!如果您使用:q!,则更改将丢失,并且将使用先前的提交消息。

使用VIM时,在两种情况下都可以退出:cq - VIM将退出并显示错误代码并且提交将被中止。