【发布时间】:2013-12-14 06:59:47
【问题描述】:
我使用外部编辑器为“git commit”填充 cmets,如果由于某种原因提交失败,所有 cmets 都会消失。是否有一些地方存储了我的提交失败的 cmets ?
是否有任何特定的 git 命令可以重用此类挂起的 cmets 或使用挂起的 cmets 重复提交?
【问题讨论】:
标签: git git-commit
我使用外部编辑器为“git commit”填充 cmets,如果由于某种原因提交失败,所有 cmets 都会消失。是否有一些地方存储了我的提交失败的 cmets ?
是否有任何特定的 git 命令可以重用此类挂起的 cmets 或使用挂起的 cmets 重复提交?
【问题讨论】:
标签: git git-commit
在编辑评论时,您可以将编辑器的内容保存在某个文件中,比如message.txt。如果由于某种原因提交失败,那么您可以像这样重用该文件:
git commit -F message.txt
如果您在退出编辑器之前没有保存消息并且提交失败,那么它就永远消失了。
顺便说一句,请注意提交消息编辑器包含以下内容:
# 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...
# ...
如果您将此文本包含在您保存的消息文件中,然后您稍后将此文件与-F 或--file 标志一起使用,那么这些行将包含在提交消息中 .所以你会想要清理它们,或者一开始就不保存它们。
更新
正如你自己发现的那样,即使提交失败,最后提交消息似乎也保存在.git/COMMIT_EDITMSG 中。所以你可以用命令重用它:
git commit -eF .git/COMMIT_EDITMSG
【讨论】:
-e 也是一个不错的举措。我更新了我的答案,虽然这当然是你的自己的答案。