如何在git commit失败后重用待处理的注释?

sim*_*sim 6 git git-commit

我使用外部编辑器填写"git commit"的注释,如果由于某种原因提交失败,所有注释都会消失.是否存在我存储失败的提交注释的地方?

是否有任何特定的git命令可以重用这些挂起的注释或重复提交挂起的注释?

Sto*_*ica 5

在编辑评论时,您可以将编辑器的内容保存在某个文件中,例如message.txt. 如果由于某种原因提交失败,那么您可以像这样重用该文件:

git commit -F message.txt
Run Code Online (Sandbox Code Playgroud)

如果您在退出编辑器之前没有保存消息并且提交失败,那么它就永远消失了。

顺便说一句,请注意提交消息编辑器包含以下内容:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# ...
Run Code Online (Sandbox Code Playgroud)

如果您在保存的消息文件中包含此文本,然后稍后使用带有-F--file标志的此文件,则这些行将包含在提交消息中。所以你会想要清理它们,或者首先不保存它们。

更新

正如自己发现的那样,.git/COMMIT_EDITMSG即使提交失败,似乎最后一次提交消息也会被保存。因此,您可以使用以下命令重用它:

git commit -eF .git/COMMIT_EDITMSG
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,当我们需要重用它时,git 对文件 COMMIT_EDITMSG 没有什么特别之处,因此“git commit -e -F .git/COMMIT_EDITMSG”是最合适的,因为它允许编辑消息并在保存后排除注释 (3认同)
  • 我只是发现最后一次提交消息存储在文件“COMMIT_EDITMSG”中的 .git 文件夹下,即使提交失败 (2认同)