多个团队的Git工作流程


12

我们将开始使用Git(尚未使用它),我想定义工作流程。

我们在全球4个不同地点拥有4个团队,共同开发同一产品。每个团队都拥有产品代码的一部分,但是有时他们也必须更改其他团队所拥有的代码。

是否有针对这种环境的Git工作流程的建议?

我已经看过这篇文章,但是这里的方法是“我们尽可能少地创建其他分支”,并且我相信“为每个用户故事分支”方法更多。

另外,本文提出了一种不错的方法。

我想到的是拥有一个master分支,每个团队的一个永久分支,定期合并到master,以及每个用户故事的分支合并到这些团队的分支。有道理还是行不通?


2
我们使用这种分支模型,但是我认为,如果您将“功能分支”读为“故事分支”,那么第二篇文章就非常适合您。

2
我敢肯定,有10个人可以通过10种不同的回复对此做出回应。这对我有用:在github上托管一个主存储库,表示“当前”版本。较旧的版本是分支的(尽管标记也可以)。鼓励团队成员为正在执行的任务创建分支。完成后,他们向主节点(或需要合并到的任何地方)发出拉取请求,然后其他人查看该拉取请求,并负责将其合并到主请求中。一旦合并,他们还负责清除分支。

2
您可能对子模块感兴趣,以使不同团队的代码库区分开。然后,他们可以在编辑彼此的代码部分时派生彼此的代码库并发送补丁。
弗雷德·富

@larsmans&carbonbasednerd-您的评论应该是答案,他们会得到我的投票。* 8')
Mark Booth

Answers:


8

看一看成功的Git分支模型,它具有一个很好的分支策略,可用于跨版本的功能开发。

成功的git分支模型

您可以在“开发”分支与“功能分支”之间为团队分支实现一个额外级别的类似操作。拥有团队分支机构还可以使两个团队通过其团队分支机构之间的合并来更有效地协作。


0

我要说的是,每个团队都有自己的版本库,每个人都在其中提交一个全局版本库(例如在Linux内核中,Linus版本库是内核和中央版本库)。

然后,为了维护产品代码,您可以使用@larsmans所说的子模块,然后每个团队只能主要在对他们最重要的部分上工作,如果他们需要与其他部分一起工作,则可以这样做,但是他们将必须记住要更新子模块,而这正是问题所在(因为使用git时很容易出错,因此很容易摆脱它们)。

但是,由于您的团队已经习惯了这一点,并且知道他们正在更改其他团队代码,因此在更改外部模块之前,他们更容易记住进行子模块更新。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.