How do I stop a Git commit when VI is on the screen waiting for a commit message?

后端 未结 3 1287
隐瞒了意图╮
隐瞒了意图╮ 2021-01-29 17:46

I have asked Git to perform a commit from within git bash, It has brought up VI as it always does.

I now wish to cancel the commit, how do I prevent proceeding with the

相关标签:
3条回答
  • 2021-01-29 18:13

    You have two options:

    • Provide an empty commit message. If it's a new commit and you haven't yet saved the message, you can simply use :q! (quit without saving). If you’ve already saved (or you're amending a previous commit), just delete the entire log message and save again. This can be done with ggdG + :wq in Vim.

    • Have the editor exit with a non-zero exit code. In Vim, you can use :cq (quit with an error code).

    It's worth noting that you can always reset your working copy to the state it was in before the commit with git reset HEAD^.

    0 讨论(0)
  • 2021-01-29 18:18
    • :q! does not work when amending a commit. It does not update the commit message, but it executes the amendment :-(
    • :cq completely aborts the amendment.
    0 讨论(0)
  • 2021-01-29 18:30

    To sum up:

    • When creating a new commit (i.e git commit) quit using :q!.
    • When amending (i.e. git commit --amend) remove the commit message (only the first few rows not beginning with a #) for example by holding v and using arrow keys to select it and then pressing Delete. Quit with :wq to apply changes! If you use :q! the changes will be lost and the previous commit message will be used.

    When using VIM it's ok in both cases to quit with :cq - VIM will quit with an error code and the commit will be aborted.

    0 讨论(0)
提交回复
热议问题