【发布时间】:2011-05-18 10:19:12
【问题描述】:
我已经让 Git 从 git bash 中执行提交,它像往常一样调出了 VI。
我现在想取消提交,如何防止从此时开始继续提交?
【问题讨论】:
-
值得补充的是,您需要在输入
:q!之前按Esc退出vim。
标签: git
我已经让 Git 从 git bash 中执行提交,它像往常一样调出了 VI。
我现在想取消提交,如何防止从此时开始继续提交?
【问题讨论】:
:q!之前按Esc退出vim。
标签: git
所有答案都想教你一点vim
但如果您在关闭 vim 时确实遇到问题
这个版本可能会有更多问题
在 git 中的每次交互都会重复这种情况
所以你想更换一个 git 编辑器
git config --global core.editor nano
git config --global core.editor <your_editor>
或学习 vim 或 emacs 等编辑器。
【讨论】:
你有两个选择:
提供空提交消息。如果它是一个新的提交并且你还没有保存消息,你可以简单地使用:q!(不保存就退出)。如果您已经保存(或者您正在修改之前的提交),只需删除整个日志消息并再次保存。这可以在 Vim 中使用 ggdG + :wq 来完成。
让编辑器以非零退出代码退出。在 Vim 中,您可以使用 :cq(退出并显示错误代码)。
值得注意的是,您始终可以使用git reset HEAD^ 将工作副本重置为提交前的状态。
【讨论】:
git reset HEAD^ 要求更多,您的shell 可能会将^ 解释为行继续。请尝试 git reset "HEAD^"、git reset HEAD^^ 或 git reset HEAD~1,而不是按照这个答案:stackoverflow.com/questions/14203952/git-reset-asks-more
总结一下:
git commit)使用:q! 退出。git commit --amend)删除提交消息(仅前几行不以#开头),例如按住v并使用箭头键选择它然后按 Delete。 退出:wq 以应用更改!如果您使用:q!,更改将丢失,并且将使用之前的提交消息。当使用 VIM 时,在这两种情况下都可以使用 :cq 退出 - VIM 将退出并显示错误代码并中止提交。
【讨论】:
:q! 在修改提交时不起作用。它不更新
提交消息,但它执行修改:-( :cq 完全中止修改。【讨论】: