Git:如何在'git reset'之后重用/保留提交消息?

时间:2013-05-31 13:09:17

标签: git commit git-rebase git-reset commit-message

作为Git用户,我经常遇到这种情况,我需要以一种不适合--amendrebase -i并具有fixup提交的方式重做一个或多个提交。通常我会做类似

的事情
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?

我认为合理的撰写提交消息非常严重。它们通常包含带有参考文献的较大文本。改变的理由。到目前为止,我对通过未分类的git refloggit log和复制& amp;来恢复旧提交消息的漫长过程非常恼火。粘贴过程。

有更好的解决方法吗?如果我包含多个提交,它会怎么样?

编辑:经过一番思考后,我认为我正在寻找的是一些 git stash 类似于提交消息的功能,其中修复/修改提交不是合适的。

4 个答案:

答案 0 :(得分:96)

git reset之后,这个单行可以做到:

git commit --reuse-message=HEAD@{1}

甚至更短:

git commit -C HEAD@{1}

您可以使用@user2718704提供的其他选项。

答案 1 :(得分:34)

运行" git commit"命令,您可以检查以下选项,

重复使用,

--reuse-message=<commit>

要在重复使用时进行编辑,

--reedit-message=<commit>

要更改作者,

--reset-author

答案 2 :(得分:7)

为什么要重置,如果你可以破解,修复,破解,然后运行git commit --amend --no-edit;因此,保留原始提交消息。

要使它适用于多个提交,只需使用最新的更改创建一个临时提交,然后使用交互式rebase来压缩先前的提交(包含良好提交消息)和新的临时提交,保留提交消息旧约。

答案 3 :(得分:2)

您可以考虑git commit --reset-author -c <commit>,重复使用提交消息进行编辑和当前时间。