gpt4 book ai didi

Git interactive rebase (fixup) 在 merge 提交时保留原始日期/时间戳

转载 作者:行者123 更新时间:2023-12-04 02:08:29 31 4
gpt4 key购买 nike

我想通过 git rebase 清理一个 git repo(github 托管),并使用“fixup”选项将类似的提交 merge 为一个提交。
我的 repo 可以追溯到 3 年前,所以我认为我可以逐步执行此操作。
例如,我最近的 5 次提交都可以,但第 6-10 次需要 merge 为一个。所以我这样做:

git rebase -i @~10

以相反的顺序列出它们,第 10 次提交是我要选择的。
接下来的 4 次提交都是“修复”。
其余 5 个设置为“选择”。

完成后,我运行:

git push origin +master

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

最佳答案

一个可能的解决方法是在使用 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'

关于Git interactive rebase (fixup) 在 merge 提交时保留原始日期/时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210131/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com