该项目有一个子模块并且指向该子模块的特定SHA(例如62726c
)。
每次运行git submodule update --init
时,子模块目录仅显示该SHA(62726c
)的更改。
最近我对子模块进行了更改并推送了更改的SHA(f81611
),但如上所述,子模块的HEAD仍指向旧的SHA 62726c
。
该项目有一个子模块并且指向该子模块的特定SHA(例如62726c
)。
每次运行git submodule update --init
时,子模块目录仅显示该SHA(62726c
)的更改。
最近我对子模块进行了更改并推送了更改的SHA(f81611
),但如上所述,子模块的HEAD仍指向旧的SHA 62726c
。
执行git submodule update --init
时,会将子模块检出到项目注册的版本,该版本未被更新,因此您总是看到它被还原。
要更改超级项目中子模块的版本,请将子模块检出到所需的SHA1:
git checkout f81611
从主项目中,您会看到子模块被列为已修改 (git status
)。您需要提交此修改,就像子模块是普通文件一样:
git add <path-to-submodule>
git commit -m "Update submodule XX so that it does YY"
git submodule update --init --recursive --remote
就足以检出该分支的最新内容。f81611
)被推送到存储库的master
上,则git submodule update --init --remote
将更新用于主父存储库中的子模块存储库的内容。
git status
中未列出更改的问题? - Rafał Kopczyński