Git interactive rebase(修复)在组合提交时保留原始日期/时间戳
我想通过git rebase清理git回购(github托管),并使用“fixup”选项将类似的提交合并到单个提交中。Git interactive rebase(修复)在组合提交时保留原始日期/时间戳,git,rebase,Git,Rebase,我想通过git rebase清理git回购(github托管),并使用“fixup”选项将类似的提交合并到单个提交中。 我的回购协议可以追溯到3年前,所以我想我可以分步进行。 例如,我最近的5次提交都可以,但第6次到第10次提交需要合并为一次提交。所以我这样做: git rebase -i @~10 这将按相反的顺序列出它们,第10次提交是我想要选择的。 接下来的4次提交都是“修复”。 其余5个被设置为“拾取” 当我完成时,我运行: git push origin +master 问题在于,
我的回购协议可以追溯到3年前,所以我想我可以分步进行。
例如,我最近的5次提交都可以,但第6次到第10次提交需要合并为一次提交。所以我这样做:
git rebase -i @~10
这将按相反的顺序列出它们,第10次提交是我想要选择的。接下来的4次提交都是“修复”。
其余5个被设置为“拾取” 当我完成时,我运行:
git push origin +master
问题在于,尽管提交是组合的,但github的代码视图中显示的日期是今天的日期。我想简单地将它们组合在一起,保留原始提交上的日期/时间戳。这可能吗?一种可能的解决方法是在使用。。。但它与交互式重基不兼容 因此,您可以尝试:
- 做你的互动重基
- 然后,在完成重基后,要恢复提交日期,请执行以下操作:
git filter-branch --env-filter 'GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE; export GIT_COMMITTER_DATE'
--提交者日期是作者日期。太好了,你的建议似乎对我有用,谢谢!