使用git分支与多个存储库的好处

时间:2012-08-08 21:34:22

标签: git version-control dvcs git-branch

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

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

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

在单个存储库中使用分支与将每个版本代码保存在单独的存储库中有什么优缺点?

这两种解决方案都可行,我正在寻找的答案是两种方法的优缺点列表。

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

我所知道的其他工作模式有不同的分支用于开发,发布等,以将代码的“清洁”修订与不断处理的脏代码分开。

这些听起来都不像我们目前所做的那样。

*请注意,我们制作的特定版本中的某些修改与所有产品版本相关,而有些则不是。

3 个答案:

答案 0 :(得分:8)

多个分支

优点:

  • 只管理一个仓库(您的自动化指向一个远程)
  • 分支之间的比较(差异)可能直接来自那个回购
  • 您可以将那个分支中的任何分支从可能需要它的任何其他下游回购中拉出来

缺点:

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

多个回购

赞成

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

缺点

  • repo duplication(占用更多空间)
  • repo management(你需要指向右边的遥控器)

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

答案 1 :(得分:1)

这是一个使用Git标签和分支的有趣答案 来自这个堆栈溢出问题:https://stackoverflow.com/a/2714318/1552414(由无法回答)

  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时,提交分支并创建新标记

答案 2 :(得分:0)

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