Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 - Fatal编程技术网

如何确定哪个模块是git中另一个模块的子模块?

如何确定哪个模块是git中另一个模块的子模块?,git,git-submodules,Git,Git Submodules,假设一个模块a,一个测试模块T 我想决定哪一个应该是另一个的子模块 直觉上,我认为将T作为a的子模块是有意义的,因为它本身没有意义 然而,我读到的例子是 。。。如果技术环境允许包装和正式 依赖关系管理,你绝对应该走这条路 请假设我们目前没有能力建立打包管道,因此需要使用子模块 根据这一原理,将A视为一个包,并为T安装它是有意义的,这意味着A实际上是T的一个子模块 这让我感到困惑,我想知道这个用例的最佳实践,最好是关于如何决定“什么是什么的子模块”这一主要问题的经验法则。您主要使用子模块来实现对

假设一个模块
a
,一个测试模块
T

我想决定哪一个应该是另一个的子模块

直觉上,我认为将
T
作为
a
的子模块是有意义的,因为它本身没有意义

然而,我读到的例子是

。。。如果技术环境允许包装和正式 依赖关系管理,你绝对应该走这条路

请假设我们目前没有能力建立打包管道,因此需要使用子模块

根据这一原理,将
A
视为一个包,并为
T
安装它是有意义的,这意味着
A
实际上是
T
的一个子模块



这让我感到困惑,我想知道这个用例的最佳实践,最好是关于如何决定“什么是什么的子模块”这一主要问题的经验法则。

您主要使用子模块来实现对依赖关系的高度控制。考虑到
A
T
的情况,
A
肯定应该是子模块,因为它是
T
的依赖项。更可能的情况是,您希望坚持将
A
作为子模块,以便您的测试项目
T
A
的特定版本为目标

此外,如果我的项目
A
是一个子模块,那么我觉得更自然,因为它是许多其他项目的依赖项:通过这种方式,它们中的每一个都可以获得它们兼容的
A
版本

最后但并非最不重要的一点是,假设您想从零开始重新启动测试项目
T
:如果
A
是一个子模块,您可以销毁
T
,而不必担心任何事情。相反,如果
A
T
作为子模块,则需要处理该问题,并重新与新的测试项目进行链接

关于拇指法则,这里是我的:如果
A
依赖于
B
B
成为子模块。遵循此规则,可以单独开发依赖项