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

Ben*_*Ben 194 git

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

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

Eug*_*ash 318

您有两种选择:

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

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

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

  • :cq是业务.出于某种原因,无论我是否使用,git都会打开:q! (84认同)
  • git reset HEAD ^会丢弃本地修改 (2认同)
  • :q!可能不起作用,因为已经有预定义的消息,您只是在编辑它。 (2认同)

Dan*_*yol 63

  • :q!修改提交时不起作用.它不会更新提交消息,但会执行修改:-(
  • :cq 完全废除修正案.

  • 我希望我可以再添加一个+1。当我的修改出现错误的提交时,我已经在这里很多次了。 (2认同)

Mac*_*ski 5

总结一下:

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

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