git - 有多个应用程序时如何组织我的 git 存储库?
问题描述
我有一个由几个组件组成的系统,我想在源代码控制下拥有这些组件,我想知道我可能采取的不同方法的优缺点。
这是这种情况
与后端通信的组件
数据库创建脚本(表、视图、函数、存储过程)
三个不同的前端(网页)
最简单的方法是将所有内容保存在同一个 repo 下(最常见的情况是我必须全部修改它们,例如,如果我必须向表中添加一个字段)。
我没有发现将所有内容保存在不同存储库中的很多优势,但我已经看到一些应用程序以这种方式组织,所以我想我一定遗漏了一些东西......
解决方案
我知道为紧密耦合的项目拥有多个存储库的唯一优势是,如果您希望它们被独立使用,并且相信如果您只有一个存储库,克隆所有内容将会很昂贵。有些人会声称拥有独立的历史记录很有用,但我做了一段时间后从未发现它有用。git bisect
当您尝试跨多个存储库进行 -style 调试时,我发现它会导致问题。
如果您出于上述原因使用多个存储库,但仍必须经常一起使用它们,那么我建议创建一个超级存储库,将所有其他存储库作为子模块。这样,当每个部分与其他部分一致时,您至少可以在超级存储库的历史记录中拥有快照。
如果常见的情况是项目一起使用和修改,那么它们应该在一个存储库中。我工作过的许多大型科技公司将几乎所有的代码都保存在一个巨大的存储库或几个大型存储库中。
推荐阅读
- php - TCPDF 错误:一些数据已经输出到浏览器,不能发送 PDF 文件
- php - PDO SELECT 仅在 foreach 循环中选择第一个
- python - Django基本ModelForm不显示选择
- css - 尝试通过 node-sass 使用 sass 变量时出错
- google-cloud-platform - Google Cloud Tasks 对转发到 Cloud Functions 执行速率限制?
- tensorflow - 数量或训练和验证样本不显示为 model.fit 的返回
- meson-build - i18n.merge_file 无法翻译桌面文件
- mysql - 如何根据 MySQL 数据库中列的索引值向表中插入值?
- pattern-matching - 球拍 - 预期:顺序?给定:#
合同违约 - flutter - TextFormField 验证返回 null