【问题标题】:Why does Git generate a random SHA? [closed]为什么 Git 会生成随机 SHA? [关闭]
【发布时间】:2012-10-06 03:20:36
【问题描述】:

如果 SHA 是由提交中的数据生成的,那么 Git 会知道两个提交何时相同。

这将解决在变基和生成实际上相同的提交时出现的问题,但 Git 认为它们是不同的,因为它们具有不同的 SHA。

这个逻辑是正确的还是我遗漏了什么?

【问题讨论】:

  • SHA 根据定义不是随机的。这是其输入的确定性函数。如果不同,则意味着输入也不同。
  • commit 中的数据用于生成树的 SHA。如果你在提交的 sha 上使用 git cat-file -p sha,你会看到树的 sha,它完全由内容决定。

标签: git version-control sha


【解决方案1】:

提交的 SHA 包括父 SHA 提交。这就是为什么即使提交本身没有改变,它也会在 rebase 时发生变化 - 它是父级更改(因为 rebase 的全部意义)。

【讨论】:

    【解决方案2】:

    如果它们真的是相同的提交,它们将具有相同的随机 SHA。

    假设您关于使用随机 SHA 的断言是正确的...如果提交在差异方面是相同的,那么由于时间、制作者以及应用差异的先前提交,它们仍然不同。等等

    【讨论】:

    • 重新设置时间基准时,作者和提交者不会改变。只有父提交更改。
    猜你喜欢
    • 2018-11-23
    • 2014-11-17
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 2013-08-05
    • 2013-04-15
    相关资源
    最近更新 更多