0

我正在开发一个项目gitgithub它有几个贡献者,每个贡献者都有自己的 fork。

master我最近在原始项目merging的分支(名为 的分支)上进行了提交chris-work,然后(作为实验)重新构建了其中一个分支(使用如何更新 GitHub 分支存储库中的详细信息?);这会导致这样的图片,其中fork以黄色显示。

截屏

如果您想查看实时图表,请点击此处

new -re-basedfork没有的变化,应该(并且现在)与master主项目的分支完全一样,但它似乎在前面。

我确信这是意料之中的,但似乎fork要从网络图中删除我必须提交和merge(看似)冗余pull请求。有人可以解释更详细的细节,并帮助我理解这种行为吗?

4

1 回答 1

1

Git 提交 ID(SHA-1 哈希)是根据几条信息计算得出的,包括

  • 提交的内容,
  • 提交的父母,
  • 提交消息,
  • 提交的时间戳,以及
  • 可能有几个我忘记了。

重要的是,许多位数据和元数据会影响生成的哈希。如果有任何不同(至少在这种情况下是时间戳和父母),您将获得不同的哈希,这意味着不同的提交。如果两个提交具有不同的哈希值,Git 永远不会认为它们是相等的。

在这种情况下,你的 rebased 分支13c310f的尖端有 id 并且你的“真实master”的尖端有 id 2d51e9e

另请注意,强烈建议不要对已发布的提交进行变基

于 2014-01-07T02:01:27.737 回答