通常,用于跟踪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命令的结果相同。
除了“添加”外,该名称未在其他地方使用。

09-28 04:06