【问题标题】:How to keep commit hashs not change when use git filter-repo rewrite the history使用 git filter-repo 重写历史时如何保持提交哈希不变
【发布时间】:2020-11-17 09:40:39
【问题描述】:

我有一个 git repo,其中有一些无效的文件夹和源已提交和删除。我想用git filter-repo重写历史。重写时是否可以保持提交哈希不变。

【问题讨论】:

  • 为什么要让哈希值相同?
  • @JoelFan 例如在 Phabricator(或任何软件管理工具)中,任务/规范与提交哈希相关联。重写历史不太可能保留链接。
  • 如果是这种情况,您应该创建标签以确保所有这些提交仍然可以访问,即使在重写历史之后也是如此。您不必标记每个提交......只需标记要重写的分支中的最后一个提交。 (当然,如果标记每个提交更容易,例如在连接到管理工具的自动化流程中,那么没有理由不这样做)

标签: git git-filter-repo


【解决方案1】:

不,this answer 提供了更多细节,但基本上提交哈希是基于所做的更改。如果更改发生变化,那么提交哈希也会发生变化。

【讨论】:

  • 提交哈希不是基于所做的更改。它基于提交后的内容,以及前一次提交的哈希。
【解决方案2】:

不,这是不可能的。哈希是使用提交文件的内容计算的。由于您要删除一些内容,因此哈希值会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2016-05-06
    • 2016-01-04
    • 2021-10-14
    相关资源
    最近更新 更多