我不了解documentation git submodule sync
做了什么。请解释一下。
答案 0 :(得分:35)
Git在两个地方存储有关子模块的信息。第一个是在名为.gitmodules
的文件中,该文件已签入git存储库。对此文件的更改将传播到其他存储库。
另一个位置在.git/config
,这是git在执行大多数命令时实际看到的位置。
所以想象你已经在一个项目上工作了一段时间,并且有一个名为foo
的子模块。这个子模块的文件是从一些url中检出的,在哪里并不重要。但是,在某些时候,这个网址会发生变化。也许它会发生变化,以便从不同的服务器或不同的路径或其他任何地方检出子模块。更新存储库时,将更新.gitmodules
文件的副本,但不会更新.git/config
文件;你仍然会从旧网址中查看。当您想要从新网址开始结帐时,您可以运行git submodule sync
将新配置从.gitmodules
复制到.git/config
。 Git不会自动执行此操作,因为您可能已对配置进行了自己的更改,并且不希望覆盖它们。