首页 > 解决方案 > 有多个应用程序时如何组织我的 git 存储库?

问题描述

我有一个由几个组件组成的系统,我想在源代码控制下拥有这些组件,我想知道我可能采取的不同方法的优缺点。

这是这种情况

最简单的方法是将所有内容保存在同一个 repo 下(最常见的情况是我必须全部修改它们,例如,如果我必须向表中添加一个字段)。

我没有发现将所有内容保存在不同存储库中的很多优势,但我已经看到一些应用程序以这种方式组织,所以我想我一定遗漏了一些东西......

标签: gitversion-control

解决方案


我知道为紧密耦合的项目拥有多个存储库的唯一优势是,如果您希望它们被独立使用,并且相信如果您只有一个存储库,克隆所有内容将会很昂贵。有些人会声称拥有独立的历史记录很有用,但我做了一段时间后从未发现它有用。git bisect当您尝试跨多个存储库进行 -style 调试时,我发现它会导致问题。

如果您出于上述原因使用多个存储库,但仍必须经常一起使用它们,那么我建议创建一个超级存储库,将所有其他存储库作为子模块。这样,当每个部分与其他部分一致时,您至少可以在超级存储库的历史记录中拥有快照。

如果常见的情况是项目一起使用和修改,那么它们应该在一个存储库中。我工作过的许多大型科技公司将几乎所有的代码都保存在一个巨大的存储库或几个大型存储库中。


推荐阅读