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

我已经要求Git在Git bash中执行一个提交,它像往常一样带出了VI。

我现在想取消提交,我如何阻止从这一点继续提交?

71023 次浏览

你有两个选择:

  • 提供一个空的提交消息。如果它是一个新的提交,你还没有保存消息,你可以简单地使用:q!(退出而不保存)。如果您已经保存了(或者您正在修改之前的提交),只需删除整个日志消息并再次保存。这可以在Vim中使用ggdG + :wq来完成。

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

值得注意的是,你总是可以用git reset HEAD^将工作副本重置为提交前的状态。

  • :q!在修改提交时不起作用。不更新 提交消息,但它执行修改:-(
  • . 0 .
  • :cq完全中止修正案。

总结如下:

  • 当创建一个新的提交(即git commit)退出使用:q!
  • 当修改(即git commit --amend)删除提交消息(仅以#开头的前几行),例如,通过按住v并使用方向键选择它,然后按Delete。使用:wq退出以应用更改 !如果您使用:q!,更改将丢失,并将使用之前的提交消息。

当使用VIM时,在这两种情况下都可以使用:cq退出- VIM将退出一个错误代码,提交将被中止。

所有的答案都试图教你一些vim

但如果关闭vim确实有问题

这个版本可能会有更多的问题

这种情况将在git中的每次交互中重复

所以您想要更改git编辑器

git config --global core.editor nano

git config --global core.editor <your_editor>

或者学习像vim或emacs这样的编辑器。