Git:如何在“git重置”后重用/保留提交消息?

问题描述 投票:0回答:5

作为 Git 用户,我经常遇到这种情况,我需要以一种不适合

--amend
rebase -i
修复提交的方式重新处理一个或多个提交。通常我会做类似的事情

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

我非常重视合理的组合提交消息。它们通常包含较大的文本,其中包含更改的参考和理由。到目前为止,我对通过未排序的

git reflog
git log
以及复制和粘贴过程恢复旧提交消息的漫长过程感到非常恼火。

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

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

git commit git-rebase git-reset commit-message
5个回答
214
投票

经过

git reset
之后,这句台词就可以做到:

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

或更短:

git commit -C HEAD@{1}

来自斯科特·雅各布森的评论:

复位后,ORIG_HEAD 被设置。我觉得

git commit --reuse-message=ORIG_HEAD
最清楚。

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


55
投票

运行“git commit”命令时,您必须检查以下选项,

重复使用,

--reuse-message=<commit>

要编辑重用,

--reedit-message=<commit>

要更改作者,

--reset-author

12
投票

如果你可以破解、修复、破解然后运行

git commit --amend --no-edit
,为什么要重置?因此,保留您原来的提交消息。

要使其适用于多个提交,只需使用最新的更改创建一个临时提交,然后使用交互式变基来用新的临时提交压缩上一个提交(包含良好的提交消息),保留旧提交的提交消息.


6
投票

您可以考虑

git commit --reset-author -c <commit>
,通过编辑和当前时间重用提交消息。


6
投票

重置后,

ORIG_HEAD
已设置。之后,您可以执行:

git commit --reuse-message=ORIG_HEAD

基于@ScottJacobsen 对@ibizaman 的回答的评论。

© www.soinside.com 2019 - 2024. All rights reserved.