git子模块名称是否用于显示以外的任何其他内容?

时间:2013-05-09 13:47:50

标签: git git-submodules

用于跟踪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

我在其中一个存储库中有这两种样式,可能是偶然的,我不确定它们为什么会有所不同。

我想确保我正确表达了这些。哪一个是“正确的”?有关系吗?子模块名称是否用于显示以外的任何其他内容?

1 个答案:

答案 0 :(得分:2)

gitmodules man page包括:

  

该文件每个子模块包含一个子部分,子部分值是子模块的名称。
  该名称设置为添加子模块的路径,除非使用--name git submodule add选项进行自定义。

然后可能会添加一个子模块(git submodule add)两次,带有和不带--name选项(“不带”表示:.gitmodules中使用的默认“名称”是其路径,如foo/bar/my-submodule)。

git submodule add似乎无关紧要,因为它通常与--name选项一起使用,使用.gitmodules的两个条目中的一个。
没有--name的git子模块添加将使用.gitmodules的第二个条目。

如果这两个条目中的两个url相同... git submodule add命令的结果是相同的 除了“添加”之外,该名称不会在其他地方使用。