如何在GitHub Action中检出子模块的指定分支?
GitHub Actions子模块指定检出master分支配置方法
默认actions/checkout开启submodules: true参数时,只会按主仓库记录的子模块commit哈希检出游离态代码,不会主动切换到指定分支。要实现所有子模块都检出master分支,可按如下方案修改配置:
方案:手动执行子模块操作命令(灵活性最高)
关闭checkout内置的自动子模块检出,新增自定义步骤执行git命令完成子模块拉取和分支切换,修改后的完整配置如下:
name: Build project on: workflow_dispatch: # 允许手动触发构建 jobs: buildForAllSupportedPlatforms: name: 为 ${{ matrix.targetPlatform }} 构建 runs-on: ubuntu-latest steps: # 升级到v4版本兼容性更好,仍在使用v2的用户也可保留原版本不影响功能 - uses: actions/checkout@v4 - name: 拉取子模块并切换到master分支 run: | # 初始化拉取所有子模块 git submodule update --init --force --recursive # 遍历所有子模块切换到master分支 git submodule foreach --recursive git checkout master
如果你需要子模块同步master分支的最新提交,而非主仓库绑定的历史commit,可以把自定义步骤的命令调整为:
git submodule update --init --force --recursive git submodule foreach --recursive 'git checkout master && git pull origin master'
内容的提问来源于stack exchange,提问作者Dr-Bracket
相关产品推荐
相关产品推荐

