“无分支合并”是如何工作的?

4
在这份Git简易指南中,合并操作总是在一个分支上执行:
git merge <branch>

在我的新工作环境中,我遇到了一种做法,即开发人员从主分支(即不是他们自己的分支)进行拉取,但当他们推送变更(这些变更是在他们自己的主分支上完成的)时,他们将其推送到另一个“主分支”(实际上是一个“个人分支”)。然后,CI系统会尝试将该“个人分支”与主分支(远程仓库)合并。
我知道这可以运作,因为团队已经这样工作了多年。但是从git本身的角度来看,这种做法是如何工作的?它是否符合预期的git概念?
还是说它违反了某些基本原则?

1
Git 的酷炫之处在于基本上没有规则,因此也就没有违反它们的规则。 - Mad Physicist
@MadPhysicist 每个出色的系统都可以被扭曲以以一种不打算的方式执行操作。我正在尝试了解 git 如何合并非分支(即主分支与主分支?) - datps
@MadPhysicist 谢谢。我希望我能给我接受的答案点赞。我认为我需要至少15个声望才能点赞。 - datps
嗯,我相信你很快就能达到那个目标。 - Mad Physicist
1个回答

2

我知道这种方式可行,因为团队已经这样工作多年了。但是从git本身的角度来看,这种方式是如何工作的呢?

然后CI系统尝试将“个人分支”与主分支(远程存储库)合并。

如果您没有指定分支,git将使用当前分支作为合并的“第二”分支名称,在git中您可以为合并编写任意数量的分支。

git merge A B C  ... N

根据分支数量,git会选择适当的合并策略。


然而,在我的新工作环境中,我遇到了这样一种做法:开发人员从主分支(即不是他们自己的分支)进行pull,但当他们完成更改(在自己的主分支上),并push这些更改时,它们会被推送到一个不同的“主分支”(实际上是一个“个人分支”)。

然后,CI系统试图将该“个人分支”与主分支(远程存储库)合并。

这种方式没有任何问题。Git就像一个未经训练的野兽。只要你擅长使用,你可以任意训练。

所以,如果这种方式适合你的IT/devops团队,那么就没有任何问题。


1
谢谢您的解释。这正是我需要澄清在我的基础git经验中的事情。 - datps
没问题,如果你有其他问题,我会在这里为你解答。 - CodeWizard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接