如何在终端中的`git commit --amend`之后确认更改?

时间:2015-01-27 17:50:46

标签: git terminal git-commit amend

当我写git commit --amend时,我会得到某种编辑器,我可以在其中更改此提交的名称。如何使用键盘确认并保存我的更改?

5 个答案:

答案 0 :(得分:14)

扩展William Pursell所说的话,你可能最终会进入vim。保存更改并退出编辑器,方法是键入:输入命令,然后按wq,然后按Enter键。要退出vim而不保存更改,请改为:q!

要将此默认设置更改为您更熟悉的内容,您可以将EDITOR变量设置为您选择的内容(尝试nano)。

只需将export EDITOR=nano放在~/.bash_profile的末尾(如果您还没有该文件,则创建该文件),以便为每个新的终端会话获取此行为。

此外,您可以完成git commit --amend -m 'Your message here'而无需编辑。

答案 1 :(得分:4)

像这样配置编辑器(以gedit为例):

git config --global core.editor "gedit"

您可以像这样阅读当前配置:

git config core.editor

您还可以从命令行添加提交消息。

git commit --amend -m "blablabla"

并且编辑器根本不会打开。

答案 2 :(得分:1)

只需按照屏幕下部的说明进行操作。 我记得它说过,按^O进行写出,然后如果您进行了任何更改,就可以输入要写入的文件名。立即按enter

注意,在Ubuntu上,^O表示Ctrl+O,而M-D表示Esc+D(据我所知)。这就是使我们感到困惑的地方。

您始终可以使用^G来阅读帮助信息。

答案 3 :(得分:1)

似乎该线程回答了您的问题:Git - How to close commit editor?

  

在编辑器中保存文件。如果是Emacs:CTRLX CTRLS保存,然后CTRLX CTRLC>退出,或者它是vi::wq

     

先按esc键退出编辑。 (在Windows / vi中)

答案 4 :(得分:0)

如果您使用git bash命令提示符,但尚未推送。您可以使用

git commit --amend -m "new message"

如果您已经推送,请使用rebase

git rebase -i HEAD~1

其中“ i”表示接口,“ 1”表示最后一个。如果您想要最后两个,则输入“ 2”。

Rebase将带您进入一个非常笨拙的“ VI”编辑器。通过插入键确保键盘处于“插入”模式。

然后,将黄色单词“ pick”覆盖为“ reword”。 然后,用新命令覆盖搞笑ID后的旧消息。 然后,通过按键盘上的“ Esc”键退出INSERT模式。现在,您必须退出“ VI”并保存。

键入:wq ,然后按“ ENTER”以保存您的编辑。 如果您看到他们给您更多问题,请再按一次“ ENTER”

回到“ $”模式后,您就会这么做

git push --force

祝你好运。