我已经开始研究新的大型项目了。它包含许多Web门户和微服务。
我在考虑如何构建git repo。 此刻我有这个:
Main Folder(one repo)
Portals(folder)
Portal 1(folder)
Portal 2(folder)
Services(folder)
Service 1(folder)
Service 2(folder)
第二个选项是:
Main Folder(folder)
Portals(repo)
Portal 1(folder)
Portal 2(folder)
Services(repo)
Service 1(folder)
Service 2(folder)
最后一个选项我在想:
Main Folder(folder)
Portals(folder)
Portal 1(repo)
Portal 2(repo)
Services(folder)
Service 1(repo)
Service 2(repo)
你怎么看?这样做有什么标准吗?
答案 0 :(得分:2)
这个问题没有客观的答案。您应该考虑除了SVN和其他早期版本控制系统之外,Git确实在努力寻找小型,模块化和包含的存储库。这使得分支更容易,这是Git工作流程不可或缺的一部分。
在考虑项目的两个部分是否应位于不同的存储库中时,请问自己以下问题:
请注意,实践中的最后一个问题很重要。即使是一部分依赖于另一部分,但发布没有集成,您应该/可以将这些部分拆分到不同的存储库中。要解决依赖关系,您可以使用Git submodules;这允许您将依赖关系存储库锁定在特定版本。
答案 1 :(得分:1)
对于这种特殊情况,我会选择 git子模块。
Main Folder(repo)
Portals(folder)
Portal 1(submodule)
Portal 2(submodule)
Services(folder)
Service 1(submodule)
Service 2(submodule)
这样,您的所有子项目(门户/服务)都是隔离的,但集中在一个单独的仓库下。您可以轻松删除子模块,并继续使用主仓库,而删除的模块仍然可以存活并用于其他项目,如果需要可以在以后添加。
在此处阅读 git子模块: