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

pepwfjgg  于 12个月前  发布在  Git
关注(0)|答案(5)|浏览(218)

作为Git用户,我经常遇到这样的情况,我需要以一种不适合--amendrebase -i修复提交的方式重新处理一个或多个提交。

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

字符串
我对合理的组合提交消息非常认真。它们通常包含更大的文本,并带有引用和更改的理由。直到现在,我对通过未排序的git refloggit log和复制粘贴过程恢复旧提交消息的漫长过程感到非常恼火。
有更好的方法来解决这个问题吗?如果我的提交不止一个,那会怎么样呢?

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

b4wnujal1#

git reset之后,这个一行程序可以做到:

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

字符串
或者更短:

git commit -C HEAD@{1}


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

pu3pd22g

pu3pd22g2#

当运行“git commit”命令时,你必须检查以下选项:
为了重复使用,

--reuse-message=<commit>

字符串
为了在重用时进行编辑,

--reedit-message=<commit>


为了改变作者,

--reset-author

ojsjcaue

ojsjcaue3#

如果你可以破解,修复,破解,然后运行git commit --amend --no-edit,那么为什么要重置呢?因此,保留了原始的提交消息。
要让它适用于多个提交,只需使用最新的更改创建一个临时提交,然后使用交互式变基来用新的临时提交压缩前一个提交(包含好的提交消息),保留旧提交的提交消息。

rdlzhqv9

rdlzhqv94#

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

tcomlyy6

tcomlyy65#

重置后,ORIG_HEAD被设置。之后,您可以执行:
git commit --reuse-message=ORIG_HEAD

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

相关问题