更新子模块
子模块引用另一个存储库中的特定提交。要检查所有子模块引用的确切状态,请运行
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>