我有两个紧密相关的项目(A 和 B),它们共享一些源代码(S)。两者将同时发布,发布版本应始终使用相同版本的共享代码。共享代码 S 将合理地经常更改。
所以,它有时看起来像这样:
- A 版本 1 使用 S 版本 1
- B 版本 1 使用 S 版本 1
- A 版本 2 使用 S 版本 2
- B 版本 2 使用 S 版本 2
用 git(和/或一些使用 git 的工具)处理这个问题的最佳方法是什么?
以下是我的担忧:
- 项目 A 和项目 B 应该在不同的存储库中(它们是相关的,但我不希望它们之间有自由的代码流)
- 如果在一个项目中更新了共享代码,它应该在另一个项目中自动更新(我不希望出现开发人员忘记做某事并最终拥有过时版本的共享代码的情况)。
据我了解,规范的答案之一是“使用git submodule ”。但是,我读到了一些关于这种方法的批评。我觉得它更像是为很少更改的共享库而设计的。
我读到的另一种方法是使用git subtree
处理这种类型的代码共享的最佳方法是什么?