gpt4 book ai didi

git - 在 git 中,在将新代码添加到 master 后,是否可以从 master merge 到最初从 master 创建的分支?

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

我不确定这是否是一个正常的分支场景,但是......

假设我从 master 创建一个分支,比如分支 C,然后 merge 回其他先前存在的分支,比如分支 A 和 B,回到 master,然后我需要分支 C 中的 A 和 B 的一些代码我可以从 master merge 到分支 C 吗?

如果是这样,是否有任何理由说明这不是一个好主意?这是 git 中的常见操作吗?

最佳答案

是的,是的。

您可以在 git 中以任何您喜欢的方式 merge 。 merge 只是意味着“merge 这些历史”。当 git 不能时,它的默认模式是将更改转储给你,即“merge 冲突”,但你也可以改变该行为以倾向于“我们的”或“他们的”。看看 git-merge有关数百个选项的完整解释的文档...

因此,根据您的解释,历史图可能如下所示:

*-------*-------*------* master
|
*----*-----* A
|
*-------* B
|
*----* C

* 只是该分支上的一些提交,除了它们全部创建的那一点。那么如何解决这个问题呢?好吧,我会:

git checkout A

在 A 上,基本上我们将像这样将 A merge 到 master 中:

git merge master

这样做是有充分理由的 - 当呈现给其他开发人员时,假设 merge 是准确的,这对他们来说代表了一个直接的快进 merge 。换句话说,将 A merge 到其他人存储库中的实际母版中,这变得更加容易。现在,您或其他开发人员可以执行的下一步:

git checkout master && git merge A

这引入了 A。它基本上应该没有 merge 冲突,因为将 master merge 到 A 的过程解决了它们,并且负责集成 A 的开发人员处理了它。

那么

git checkout B && git merge master

再次,解决 merge 问题,然后 git checkout master && git merge B

最后,你说我可以将 master merge 到 C 中吗?绝对地。我们刚刚完成了两次该过程。

我们在工作中使用这种特殊的做事方式。基本上,我让其他开发人员在他们的分支准备好时通知我,然后我将它们 merge ,然后每个人都将 master merge 到他们的分支,然后重复这个过程。您甚至可以使用远程存储库来执行此操作。如果您在远程跟踪分支,git pull 会 pull 您的更改。这实际上是一个 git fetch 后跟一个 git merge,所以如果你没有跟踪其他人的分支,你仍然可以像这样应用 merge :

他们可以执行 git merge leaddeveloper/master 其中 leaddeveloper 是远程名称。然后他们可以纠正任何冲突,向首席开发人员发送一封电子邮件,说“请 pull ”,然后首席开发人员可以键入 git fetch && git merge juniordeveloper1/somebranch 或者更可能是 git fetch && git diff master..juniordeveloper1/somebranch 找出他们首先做了什么。

简而言之,我认为这是一种非常好的项目管理方式。它让每个人都了解最新情况,并确保处理主要 master 的人不会同时承担集成代码的工作。

关于 git rebase 的主题,this question处理得非常巧妙。

关于git - 在 git 中,在将新代码添加到 master 后,是否可以从 master merge 到最初从 master 创建的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837500/

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