作为Git用户,我经常遇到这种情况,我需要以一种不适合--amend
或rebase -i
并具有fixup提交的方式重做一个或多个提交。通常我会做类似
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?
我认为合理的撰写提交消息非常严重。它们通常包含带有参考文献的较大文本。改变的理由。到目前为止,我对通过未分类的git reflog
,git log
和复制& amp;来恢复旧提交消息的漫长过程非常恼火。粘贴过程。
有更好的解决方法吗?如果我包含多个提交,它会怎么样?
编辑:经过一番思考后,我认为我正在寻找的是一些 git stash 类似于提交消息的功能,其中修复/修改提交不是合适的。
答案 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>
,重复使用提交消息进行编辑和当前时间。