git 子模块名称是否用于显示以外的其他用途?

And*_*ier 5 git git-submodules

.gitmodules用于跟踪 git 存储库中的子模块的文件通常为每个子模块都有一个名称,如下所示:

[submodule "my-submodule"]
  path = foo/bar/my-submodule
  url = http://github.com/myuser/original-my-submodule
Run Code Online (Sandbox Code Playgroud)

但是,我也看到它是用子模块名称中重复的本地路径编写的:

[submodule "foo/bar/my-submodule"]
  path = foo/bar/my-submodule
  url = http://github.com/myuser/original-my-submodule
Run Code Online (Sandbox Code Playgroud)

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

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

Von*_*onC 3

手册gitmodules包括:

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

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

这似乎并不重要git submodule add,因为它通常--name也与选项一起使用,使用 的两个条目之一.gitmodules
不添加 git 子模块--name将使用.gitmodules.

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

  • @AndrewFerrier 据我所知,该名称仅用于“git submodule add” (2认同)