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

如何在GitHub Action中拉取子模块内的LFS文件?

解决子模块中LFS文件拉取失败的问题

你的问题核心在于actions/checkout@v2的lfs: true仅会拉取主仓库的LFS文件,不会自动处理子模块内的LFS内容——之前能正常工作可能是偶然的兼容场景,现在需要针对性调整配置。

以下是两种可行的解决办法:

方案1:升级到最新版checkout Action

v2版本较老旧,新版对LFS和子模块的支持更完善,直接替换为v4即可:

jobs:
  steps:
    ...
    - uses: actions/checkout@v4
      with:
        lfs: true
        token: ${{ secrets.ACCESS_TOKEN }}
        submodules: recursive
        fetch-depth: 0

v4会自动递归处理所有子模块的LFS文件,无需额外步骤。

方案2:保留v2,添加手动拉取子模块LFS的步骤

如果不想升级Action版本,可在checkout步骤后添加单独命令,手动拉取子模块的LFS内容:

jobs:
  steps:
    ...
    - uses: actions/checkout@v2
      with:
        lfs: true
        token: ${{ secrets.ACCESS_TOKEN }}
        submodules: recursive
        fetch-depth: 0
    # 手动拉取子模块的LFS文件
    - name: Pull submodule LFS files
      run: git submodule foreach --recursive git lfs pull

这条命令会遍历所有嵌套的子模块,逐一拉取它们的LFS文件。

额外注意事项

  • 确保你的ACCESS_TOKEN同时拥有主仓库和子模块仓库的读取权限,包括LFS对象的访问权限
  • 如果子模块是私有仓库,token需要具备对应仓库的访问权限

内容的提问来源于stack exchange,提问作者Shahar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:24:45