我认为现在的架构是典型的,包括 iOS 客户端、Android 客户端和 J2EE 后端。这些在文件系统中看起来像这样:
- 我的项目
- 代码
- client_iOS
- client_android
- server_J2EE
- 数据库
- 创意
- 其他
- 代码
当我独自工作并对整个堆栈进行编码时,我将所有内容都放在同一个 git 存储库中,文件夹为 .git
。在 <myProject>
下.这很棒,因为我可以跟踪整个堆栈中每个“功能”的变化。例如,修复错误可能需要更改服务器 + iOS 文件,因此必须统一跟踪此类更改。
但是现在团队即将扩大,我需要限制相关团队跨这些层的访问。例如,后端团队不应该能够访问 iOS 文件,反之亦然。理想情况下,我希望 git(或 git 主机)在每个文件夹的基础上获得授权,这将很好地解决问题。但我在任何地方都没有看到该功能。
如果我将代码拆分到单独的存储库中,我们将无法再同步跟踪更改。回滚到以前的版本,因为这些独立的 repo 随着时间的推移异步发展,将变得一团糟。
我阅读了有关 git 子模块的内容,但它看起来并不适合这个用例。从人类工作量的角度来看,它们也有很多开销和出错的空间。这似乎是一个典型的场景,我想听听其他人是如何处理这个问题的。
最佳答案
这是一个常见的项目增长挑战。最常见的解决方案是将多个存储库与共享或独立的发布名称联系在一起;参见例如 Spring Framework项目与 Spring Boot 的关系项目。
注意:我的偏好是制作这些独立的存储库,但所有开发人员都可以访问——重点是使整个开发周期尽可能快。
关于git - 如何为多层架构构建 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697260/