更新子模块

子模块引用另一个存储库中的特定提交。要检查所有子模块引用的确切状态,请运行

git submodule update --recursive

有时,而不是使用引用的状态,你希望更新到本地检出到远程上该子模块的最新状态。要使用单个命令检出远程控制器上所有子模块的最新状态,你可以使用

git submodule foreach git pull <remote> <branch>

或使用默认的 git pull 参数

git submodule foreach git pull

请注意,这只会更新你的本地工作副本。运行 git status 会将子模块目录列为脏,如果它由于此命令而更改。要更新存储库以引用新状态,你必须提交更改:

git add <submodule_directory>
git commit

如果你使用 git pull,可能会有一些可能会发生合并冲突的更改,因此你可以使用 git pull --rebase 将更改倒回到顶部,大多数时候它会降低冲突的可能性。它还将所有分支拉到本地。

git submodule foreach git pull --rebase

要检查特定子模块的最新状态,你可以使用:

git submodule update --remote <submodule_directory>