gpt4 book ai didi

git - Git 来回 merge 后,为什么分支不在同一点?

转载 作者:太空狗 更新时间:2023-10-29 14:27:49 26 4
gpt4 key购买 nike

根据我的理解,我们一直在用 Git 做一个非常标准的分支模型的项目,描述如下:http://nvie.com/posts/a-successful-git-branching-model/

我们从“master”开始,从它分支“develop”。有很多提交到“开发”,然后我们从“开发”中分支出“release-1”。有一些提交到“release-1”,然后我们将“release-1” merge 到“master”,然后再次将“release-1” merge 到“develop”。然后我们删除了“release-1”。

现在我希望“master”和“develop”分支在同一点。他们确实有相同的文件,但根据分支图,他们有完全不同的历史,唯一的共同点是存储库中的第一个提交。

所以两个问题:

1) 为什么他们没有相同的历史/为什么他们不在同一点?

2) 我们如何修复它?我们应该强制 merge “develop”到“master”还是“master”到“develop”?

最佳答案

正如 LeGec 所说,提交是由各种信息生成的,包括 author, committer, parent commit, and more这应该使它独一无二/可识别。

从你的描述来看,你的情况是这样的:

Master  | M1 -------------------------> M2 (merge commit)
-------- \ /
Release | \ R1 -> R2
-------- \ / \
Develop | D1 -> D2 -> D3 --------> D4 (merge commit)

正如您在案例中所描述的,M2 和 D4 中的文件将是相同的,但是它们的父提交以及它们的创建时间将不同。

这不太可能给您带来问题,因为您的工作将在 develop 上继续进行,下次您可以愉快地遵循发布工作流程。由于您不是独立地提交 master,因此您不应遇到 merge 冲突。

如果你想“修复它”,也就是给他们一个共同的提交,你可以将 master merge 到 develop 中,但这不会给你带来任何好处除了额外的 merge 提交。

Master  | M1 -------------------------> M2 (merge commit)
-------- \ / \
Release | \ R1 -> R2 \
-------- \ / \ \
Develop | D1 -> D2 -> D3 --------> D4 -> D5 (merge commit)

请注意,这是假设您没有执行快进 merge 。

关于git - Git 来回 merge 后,为什么分支不在同一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45508729/

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