$ git commit --amend not altering / saving commit message

时间:2018-03-04 13:25:23

标签: git github atom-editor git-commit git-commands

我最近$ git add .我对其中一个存储库进行了一些更改,后跟$ git commit -m'INcorrect commit message'

我决定使用以下方法将错误的提交消息更改为'更正提交消息'

$ git commit --amend

我可以在此处找到我执行此操作的说明:https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages

我使用Atom,因此Atom会打开' IN 正确的提交消息'显示,我改为'正确提交消息'并保存我的更改。

保存更改后的提交消息后,我做了$ git log -1期望看到“正确提交消息”&#39 ;;但是,我仍然看到' IN 正确的提交消息。'

我究竟做错了什么?

注意

就在此之前,我按照以下说明将我的git编辑器从Sublime更改为Atom:How do I make Git use the editor of my choice for commits?

我基本上使用过:

$ git config --global core.editor "atom"

$ export GIT_EDITOR=atom

我现在意识到我不必同时做这两件事,但我也意识到这可能也没有什么坏处。

1 个答案:

答案 0 :(得分:3)

两个的东西为我解决了这个问题。

<强>一

正如@torek在我的原帖中所附的评论中指出的那样,在调用Atom时设置 - wait 参数会阻止git从$ git commit --amend命令返回。显然,这对于git成功捕获已更改的提交消息是必要的,而不是在消息被更改之前返回。有道理。

$ git config --global core.editor "atom --wait"

<强>两个

显然,如果我没有 明确保存 我更改的提交消息(mac上的命令+),它将永远不会被保存。我必须这样做才能获取提交消息以识别我更改的提交消息。

起初看起来非常明显;但是,如果我改变了我的提交消息并点击了关闭窗口按钮(在Mac上窗口左上方的&#39; x),就会发生奇怪的事情......

如果我更改了提交消息,请使用关闭窗口按钮关闭Atom(&#39; x&#39;),然后执行$ git log -1命令,提交消息将显示原始未更改的提交消息。 那里没什么奇怪的。

但是,如果我然后执行了另一个 $ git commit --amend 命令,Atom将打开并显示来自上一个的更改后的提交消息$ git commit --amend 命令!如果你问我,这是非常奇怪的行为。不是一个git guru,让我们说这并没有为我解决任何困惑。

底线

附加 - 等待参数($ git config --global core.editor "atom --wait"), 显式 在Atom中保存更改的提交消息(命令+在执行$ git commit --amend

时,在Mac上)