Git 项目子模块组织

Git project submodule organizing


我有一个包含子模块的 git 项目。它看起来像这样:

项目 A
---- 项目 B(子模块)
---- 项目 C(子模块)

项目 C 使用项目 A 和 B 的代码。
项目 B 使用项目 C 的代码。

这种可恶的情况引起的问题是,当我想发出一个包含影响所有三个项目的更改的 pull request 时,处理起来就变得一团糟。

我想知道解决当前问题的最佳方法是什么?
我考虑过将所有项目合并为一个,但想知道是否有更好的解决方案。

谢谢

项目中的循环依赖通常是制造问题的机会,我建议避免它。确切的解决方案将在某种程度上取决于您的环境和不同项目的要求。要问自己的主要问题是:

项目之间是否有干净的接口,或者,可以吗?

如果我们考虑微服务架构,那么每个组件都有一个项目并且组件之间具有强大的接口是有意义的。这意味着项目 A 的团队与项目 B 的团队有 'contract'。

如果没有干净的界面,那么我会建议压缩到一个存储库中。这里的主要原因是为了方便开发人员。通常需要在两个项目之间同步进行更改。在单个项目中比在多个项目中更容易做到。

再多一些线索,你们都是一起发布项目,还是可以单独发布项目?如果你总是把项目一起发布,那么我建议压缩成一个项目。

如果您有任何后续问题,或者有关您希望我考虑的项目的更多信息,请发表评论。

总结。 如果您还没有使用 $git init

初始化本地存储库,请先初始化

然后添加远程仓库:

$git remote add -f reponame https://github.com/username/reponame.git

将远程仓库与本地仓库合并

$git merge reponame/master --allow-unrelated-histories