13

我们正在开发自动化代码。

我们的代码使公司的产品自动化,并同步到特定的产品版本。

目前,我们有 1 个包含多个分支的大型 Git 存储库 - v1.0、v1.1、v2.0(1.0 版的自动化进入 v1.0 分支等)。

将这些放在带有分支的单个存储库中与将每个版本代码保存在单独的存储库中的优点和缺点是什么?

两种解决方案都可以工作,我正在寻找的答案是任何一种方法的优缺点列表。

我知道很多团队都在使用分支来隔离开发中的临时阶段,例如进行错误修复或新功能,最终将工作合并回主开发分支。

我知道的其他工作模式有用于开发、发布等的不同分支,以将代码的“更清洁”修订版与不断进行的脏修订版区分开来。

这些听起来都不像我们目前正在做的事情。

*请注意,我们在特定版本中所做的一些修改与所有产品版本相关,而有些则不相关。

4

3 回答 3

9

多个分支

优点:

  • 只需管理一个仓库(您的自动化指向一个遥控器)
  • 可以直接从该一个存储库中进行分支之间的比较(差异)
  • 您可以将这些分支中的任何一个从该存储库拉到可能需要它的任何其他下游存储库

缺点:

  • 分支混乱(您需要管理/删除分支的总和)
  • 标签适用于所有回购(不仅仅是“某些产品”

多个回购

优点

  • 你可以从主仓库中提取你需要的东西并从那里工作
  • 您可以轻松清理旧的“分支”(只需删除该特定回购)

缺点

  • 回购重复(占用更多空间)
  • 回购管理(您需要指向正确的遥控器)

我认为单一回购方法是一种更简单、更经典的方法。
也就是说,如果您有很多版本(需要定期清理),那么在他们自己的仓库中隔离这些临时版本也可以工作。

于 2012-08-09T06:13:34.763 回答
1

这是一个有趣的答案,使用来自此堆栈溢出问题的 Git 标记和分支:https ://stackoverflow.com/a/2714318/1552414 (None-da 的回答)

  1. 达到新版本时创建标签。(v3.0.0)
  2. 第一次需要修改的时候创建它的一个分支

    git checkout -b v3.0.0_branch v3.0.0 
    
  3. 当您达到 v3.0.1、v3.0.2、v3.1.0 时提交到分支并创建新标签

于 2012-08-08T22:01:44.460 回答
0

不久前,我的公司进行了类似的讨论(分支机构的利弊)。在进行研究时,我发现以下指导很有帮助。http://guides.beanstalkapp.com/version-control/branching-best-practices.html我希望它对你也有帮助。

于 2015-07-15T18:24:13.970 回答