Git交互式rebase(fixup)在组合提交时保留原始日期/时间戳

时间:2016-12-18 15:55:52

标签: git rebase

我想通过git rebase清理一个git repo(github托管),并使用' fixup'将类似的提交组合成一个。选项。
我的回购可以追溯到3年,所以我认为我可以逐步做到这一点 例如,我最近的5次提交都没问题,但是第6-10次需要合并为一次。所以我这样做:

git rebase -i @~10

以相反的顺序列出它们,第10次提交是我想要选择的 接下来的4个提交都是' fixup' 剩下的5个被设置为“挑选”。

当我结束时,我跑:

git push origin +master

问题在于虽然提交已合并,但github代码视图中显示的日期是今天的。
我想简单地将它们组合在原始提交上保留日期/时间戳。这可能吗?

1 个答案:

答案 0 :(得分:1)

可能的解决方法是在使用git rebase时使用--committer-date-is-author-date选项...但它与交互式rebase不兼容。

所以你可以尝试:

  • 做你的交互式rebase,
  • 然后,一旦rebase完成,make a git filter-branch恢复提交日期:

    git filter-branch --env-filter 'GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE; export GIT_COMMITTER_DATE'