考虑我提交
... -- A -- B -- C
如果我使用git rebase -i
将所有三个提交压缩为一个,我们可以
pick A
squash B
squash C
我看到结果提交A
有其原始时间戳。怎么能让它继承commit C
(最后一个)的时间戳?
我能想到的是git commit --amend --date=<new_time>
,但这种方式需要在压缩之前或从reflog之前记住提交C
的时间戳。
我发现最新提交的时间戳更合理,因为它显示了我实际完成提交中的工作的时间。
感谢。
答案 0 :(得分:12)
没有一种简单的方法可以做到这一点,但有一些选择。这是一个:
git commit --amend --date="$(git show -s --pretty=tformat:%ai <sha1-of-C>)"
另一个:
git commit --amend -c <sha1-of-C>
后者将破坏您现有的提交消息,因此您必须重写它。
答案 1 :(得分:5)
git commit --amend --reset-author