28

考虑我有提交

... -- A -- B -- C

如果我git rebase -i过去将所有三个提交压缩为一个,我们可以

pick A
squash B
squash C

我看到结果提交A具有其原始时间戳。如何让它继承提交的时间戳C(最后一个)?

我能想到的是git commit --amend --date=<new_time>,但是这种方式需要记住Csquash之前的commit时间戳或来自reflog的时间戳。

我发现最新提交的时间戳更合理,因为它显示了我实际完成提交中的工作的时间。

谢谢。

4

2 回答 2

19

没有一种简单的方法可以做到这一点,但有一些选择。这是一个:

git commit --amend --date="$(git show -s --pretty=tformat:%ai <sha1-of-C>)"

还有一个:

git commit --amend -c <sha1-of-C>

后者将破坏您现有的提交消息,因此您必须重写它。

于 2012-04-05T00:35:48.897 回答
5

git commit --amend --reset-author

于 2016-12-08T15:00:23.343 回答