36

可能是非常愚蠢的问题,但到目前为止我一直在 .gitmodules 文件中指定子模块。最近让我感到震惊的是,出于同样的原因,也许可以只使用 .git/config ,这样我就不必在工作目录中保留无关的文件?

.git/config :

[submodule "path/to/repo"]
    url = git@github.com:username/repo.git

.gitmodules

[submodule "path/to/repo"]
    path = path/to/repo
    url = git@github.com:username/repo.git

这些基本上是一样的吗?

4

2 回答 2

35

.git/info/exclude与和相同的答案.gitignore

.gitmodules文件可以包含在存储库中并与所有人共享(也就是说,它可以像任何常规文件一样添加和提交),而.git(like .git/config) 中的任何内容都是私有的(您不能将其添加到存储库中)。

于 2012-05-04T17:47:12.050 回答
19

它将使用git submodule sync.gitmodules 文件中的详细信息更新您的配置文件,因此后者应被视为“主” - 如@Artefact2 所述,它在存储库之间传递。

当子模块 URL 更改上游并且您需要相应地更新本地存储库时,这很有用。

于 2012-05-04T18:03:42.123 回答