更新子模組

子模組引用另一個儲存庫中的特定提交。要檢查所有子模組引用的確切狀態,請執行

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>