通常,用于跟踪git存储库中的子模块的.gitmodules
文件为每个子模块都有一个名称,如下所示:
[submodule "my-submodule"]
path = foo/bar/my-submodule
url = http://github.com/myuser/original-my-submodule
但是,我也看到它是用子模块名称中重复的本地路径编写的:
[submodule "foo/bar/my-submodule"]
path = foo/bar/my-submodule
url = http://github.com/myuser/original-my-submodule
我在一个存储库中同时拥有这两种样式,这可能是偶然的,而且我不确定为什么它们会有所不同。
我想确保我正确表达了这些意思。以下哪项是“正确的”?有关系吗?子模块名称是否用于显示以外的其他用途?
最佳答案
gitmodules
man page包括:
然后有可能添加和不添加git submodule add
选项两次添加一个子模块(--name
)(“不带”表示:.gitmodules中使用的默认“名称”是其路径,如foo/bar/my-submodule
)。
git submodule add
似乎无关紧要,因为它通常也与--name
选项一起使用,使用.gitmodules
的两个条目之一。
没有--name
的git子模块add将使用.gitmodules
的第二个条目。
如果这两个条目中的两个URL都相同,则git submodule add
命令的结果相同。
除了“添加”外,该名称未在其他地方使用。