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

Nar*_*rek 31 git git-submodules

我不明白从文档git submodule sync做了什么.请解释.

db4*_*48x 39

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

另一个位置在.git/config,并且它是执行大多数命令时git实际看起来的位置.

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

  • 我不确定有人认为子模块命令很漂亮。 (2认同)