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

标签 git version-control dvcs git-branch

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

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

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

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

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

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

我知道的其他工作模式有不同的开发、发布等分支,以将代码的“更干净”修订与不断处理的脏代码分开。

虽然这些听起来与我们目前正在做的都不相似。

*请注意,我们在特定版本中所做的某些修改适用于所有产品版本,而某些则不适用。

最佳答案

多个分支

优点:

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

缺点:

  • 分支困惑(你需要管理/删除分支的总和)
  • 标签适用于所有 repo(不仅适用于“某些产品”

多个 repo

优点

  • 您可以只从主仓库中提取您需要的内容并从那里开始工作
  • 你可以很容易地清理旧的“分支”(只需删除那个特定的 repo)

缺点

  • repo 复制(占用更多空间)
  • repo 管理(您需要指向正确的 Remote )

我认为单一 repo 方法是一种更简单、更经典的方法。
也就是说,如果您有许多 版本(需要定期清理),将这些临时版本隔离在它们自己的存储库中也可以。

关于git - 使用 git 分支与多个存储库的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873527/

相关文章:

具有用户名和密码身份验证的 Git 服务器

git - 错误: RPC failed; HTTP 502 curl 22 The requested URL returned error: 502 Bad Gateway fatal

git - 直接跳转到 'git add -i' patch命令(5)

c# - 是否有用于包装多个 SCM 提供商 API 的 c# 库?

git - 如何获取我机器上所有 git Remote 的列表?

mercurial - 让 mercurial "hg commit"与 Notepad++ 一起使用

安卓源码分支

git - 使用当前的 .gitignore 使 Git 重建历史

git - 使用 git 跟踪其他人的项目

svn - 如何使用 git 或 svn 将 MonoDevelop 项目连接到 BitBucket?