git submodule sync命令 - 它的用途是什么?

时间:2015-11-16 15:51:37

标签: git git-submodules

我不了解documentation git submodule sync做了什么。请解释一下。

1 个答案:

答案 0 :(得分:35)

Git在两个地方存储有关子模块的信息。第一个是在名为.gitmodules的文件中,该文件已签入git存储库。对此文件的更改将传播到其他存储库。

另一个位置在.git/config,这是git在执行大多数命令时实际看到的位置。

所以想象你已经在一个项目上工作了一段时间,并且有一个名为foo的子模块。这个子模块的文件是从一些url中检出的,在哪里并不重要。但是,在某些时候,这个网址会发生变化。也许它会发生变化,以便从不同的服务器或不同的路径或其他任何地方检出子模块。更新存储库时,将更新.gitmodules文件的副本,但不会更新.git/config文件;你仍然会从旧网址中查看。当您想要从新网址开始结帐时,您可以运行git submodule sync将新配置从.gitmodules复制到.git/config。 Git不会自动执行此操作,因为您可能已对配置进行了自己的更改,并且不希望覆盖它们。