可能非常愚蠢的问题,-但到目前为止,我一直在.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
这些基本上是一回事吗?
相同的答案比 .git/info/exclude
和 .gitignore
.
.gitmodules
文件可以包含在存储库中并与所有人共享(也就是说,它可以像任何常规文件一样添加和提交),而.git
中的任何内容(如.git/config
)都是私有的(您不能将其添加到存储库中)。
git submodule sync
将使用 .gitmodules 文件中的详细信息更新您的配置文件,因此后者应被视为"主节点" - 如@Artefact2所述,它在存储库之间传递。
当子模块 URL 在上游更改并且您需要 相应地更新本地存储库。