探索单存储库与多存储库

已完成

存储库是存储工作历史记录的位置,通常存储在 .git 文件夹中。

应如何组织代码存储库? 开发团队希望将软件的不同部分分开并组织。 随着时间的推移,代码存储库可能会由于包含不相关的代码和文件而变得混乱。

组织存储库时,有两种主要方法:使用一个存储库(Monorepo)或多个存储库。

  • Monorepo - 所有源代码都保存在一个存储库中。 可以轻松地让所有团队成员同时访问所有内容。 克隆它,你拥有一切。
  • 多个存储库 - 每个项目或组件获取其自己的独立存储库。

这些方法之间的主要区别在于团队如何更有效地协同工作。 使用多个存储库,每个子团队都可以在其自己的存储库中工作。 这样,他们就可以使用最适合它们的库、工具和工作流。

缺点是,使用另一个存储库中的任何内容就像使用第三方库,即使团队中的有人写了它。

如果在一个来自其他存储库的库中发现了 bug,你需要:

  1. 在存储库中修复此问题
  2. 发布新版本
  3. 返回到存储库并更新代码

这可能会很慢,尤其是在 bug 涉及不同的代码库、库、工具或工作流时。 可能需要向该系统的所有者寻求帮助并等待其响应。

使用 monorepo,管理复杂的依赖关系可能更加困难,但独立团队的好处没有那么显著。 某些团队可能有效工作,但其他团队可能不起作用。 在一个存储库中完成所有工作后,你只需专注于管理一个位置。

在 monorepo 中,可以避免在其他存储库中进行更改的麻烦,或等待其他团队为你进行更改的麻烦。 任何人都可以更改他们需要的任何内容。

如果在库中发现 bug,修复它就像在自己的代码中修复 bug 一样简单。

注意

在 Azure DevOps 中,通常对项目中的每个解决方案使用单独的存储库。