You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:24:01