Git如何将所有子模块同步到特定提交,适配code子模块指定版本?
Git子模块版本同步操作指南
针对你的仓库结构,要切换code子模块到特定提交并同步所有适配子模块,按以下步骤操作:
1. 切换code子模块到目标提交
- 进入项目根目录:
cd project - 直接切换
code到指定提交(替换<TARGET_COMMIT>为目标提交哈希或标签):cd code git checkout <TARGET_COMMIT> cd ..
2. 找到父仓库中适配该code版本的提交
父仓库会跟踪所有子模块的对应提交哈希,你需要找到父仓库里**code子模块指向<TARGET_COMMIT>**的历史提交,该提交记录了所有适配当前code版本的子模块状态:
- 查看父仓库中
code子模块的版本变更历史:
从输出里找到git log -p -- codecode子模块指向<TARGET_COMMIT>的那个父仓库提交,记下它的哈希值,记为<ADAPT_PARENT_COMMIT>
3. 同步所有子模块到适配版本
- 切换父仓库到这个适配提交:
git checkout <ADAPT_PARENT_COMMIT> - 递归更新所有子模块(包括嵌套的
toolchain/linux和toolchain/windows):
这个命令会自动把所有子模块(含嵌套子模块)切换到父仓库当前提交所记录的适配版本,确保构建环境和git submodule update --init --recursivecode版本匹配。
4. 可选:在当前分支保留适配配置
如果不想切换父仓库分支,而是在当前分支固定所有子模块的适配版本:
- 依次进入其他子模块(
tools、shared、toolchain/linux、toolchain/windows),分别切换到对应适配的提交哈希(可从<ADAPT_PARENT_COMMIT>的子模块记录中获取) - 回到父仓库,提交所有子模块的版本变更:
git add tools shared toolchain/linux toolchain/windows code git commit -m "Sync submodules to adapt code's <TARGET_COMMIT>"
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

