Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git项目子模块组织_Git_Git Submodules_Project Management - Fatal编程技术网

Git项目子模块组织

Git项目子模块组织,git,git-submodules,project-management,Git,Git Submodules,Project Management,我有一个git项目,其中包括子模块。它看起来像这样: 项目A ----项目B(子模块) ----项目C(子模块) 项目C使用项目A和B中的代码。 项目B使用项目C中的代码。 这种可恶的情况产生的问题是,当我想要发出一个包含影响所有三个项目的更改的请求时,处理起来就变得一团糟。 我想知道解决当前问题的最佳方法是什么? 我曾考虑将所有项目合并为一个项目,但想知道是否有更好的解决方案。 谢谢项目中的循环依赖通常是制造问题的机会,我建议避免它。确切的解决方案在某种程度上取决于您的环境和不同项目的需求。要


我有一个git项目,其中包括子模块。它看起来像这样:

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

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

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

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


谢谢

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

项目之间是否有一个干净的界面,或者是否可以?

如果我们考虑一个微服务体系结构,那么在组件之间有一个强接口的每个组件有一个项目是有意义的。这意味着项目A的团队与项目B的团队签订了“合同”

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

还有几条线索,你总是一起发布项目,还是单独发布项目?如果您总是同时发布项目,那么我建议将其压缩为单个项目


如果你有任何后续问题,或者更多关于你想让我考虑的项目的信息,请留下评论。

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

项目之间是否有一个干净的界面,或者是否可以?

如果我们考虑一个微服务体系结构,那么在组件之间有一个强接口的每个组件有一个项目是有意义的。这意味着项目A的团队与项目B的团队签订了“合同”

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

还有几条线索,你总是一起发布项目,还是单独发布项目?如果您总是同时发布项目,那么我建议将其压缩为单个项目

如果你有任何后续问题,或者更多关于你想让我考虑的项目的信息,请留下评论。

< P>总结。 如果尚未使用
$git init

然后添加远程存储库:

$git remote add -f reponame https://github.com/username/reponame.git
将远程存储库与本地存储库相结合

$git merge reponame/master --allow-unrelated-histories
总结。 如果尚未使用
$git init

然后添加远程存储库:

$git remote add -f reponame https://github.com/username/reponame.git
将远程存储库与本地存储库相结合

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

你说的“使用代码”是什么意思?你可以尝试使用回购工具:谢谢你的回复。我将查看回购工具。但我所说的“使用代码”是指一个项目的函数调用另一个项目的函数@Pratham。你说的“使用代码”是什么意思?你可以尝试使用repo工具:谢谢你的回复。我将查看回购工具。但我所说的“使用代码”是指一个项目的函数调用另一个项目的函数@Pratham。非常感谢James的回答!我决定压缩成一个项目。我发现这是按照你的建议去做的指南:你有更好的建议吗?再次感谢布鲁斯,很高兴答案有帮助。不幸的是,我没有任何合并回购协议的经验(只是促进决策)。我已经快速浏览了这篇文章,它看起来相当直截了当。如果有更好的解决办法,我会感到惊讶。(根据我们的经验)提醒一下,对于正在合并的回购,git历史会发生什么。当然,如果可以的话,保留历史是很好的。非常感谢詹姆斯的回答!我决定压缩成一个项目。我发现这是按照你的建议去做的指南:你有更好的建议吗?再次感谢布鲁斯,很高兴答案有帮助。不幸的是,我没有任何合并回购协议的经验(只是促进决策)。我已经快速浏览了这篇文章,它看起来相当直截了当。如果有更好的解决办法,我会感到惊讶。(根据我们的经验)提醒一下,对于正在合并的回购,git历史会发生什么。当然,如果可以的话,保留历史是件好事。