GitHub Actions执行报错:--local仅能在Git仓库内使用
问题原因
错误出在actions/checkout@v3执行阶段,核心原因是缓存步骤(Cache)在代码检出(Checkout)之前运行:
- 缓存恢复时会创建
.git/lfs目录,但此时工作目录还不是一个完整的Git仓库 - 后续checkout步骤执行
git config --local --get remote.origin.url时,因为当前目录没有有效的.git仓库结构,触发--local can only be used inside a git repository错误
修复方案
调整步骤顺序,将Checkout source步骤移到Cache步骤之前,确保先完成Git仓库的初始化,再进行缓存操作:
修改后的GitHub Actions配置关键部分:
jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v3 with: lfs: false - name: Cache uses: actions/cache@v3 with: key: lfs-cache-${{ github.sha }} # 加入SHA避免缓存冲突(可选优化) path: .git/lfs restore-keys: | - lfs-cache-
额外说明:
- 调整顺序后,checkout先创建完整的Git仓库,缓存步骤再针对已存在的
.git/lfs目录进行缓存/恢复,不会再触发非Git仓库的错误 - 给缓存key加上
${{ github.sha }}或者分支名,可避免不同提交的LFS缓存互相干扰,提升缓存有效性
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

