致命:不明确的参数“main”:未知修订版或路径不在工作树中

问题描述 投票:0回答:1

我在 CI 中使用 NXGitHub Actions,并使用 actions/checkout@v4 签出存储库。

当我尝试使用

nx affected:...
,例如
nx affected:lint
nx affected:test
时,它失败并出现以下错误:

致命:不明确的参数“main”:未知修订版或路径不在 工作树。使用“--”将路径与修订版分开,如下所示: 'git [...] -- [...]'

问题是

main
分支不可用。我尝试按照
checkout 操作文档
的建议使用 fetch-depth: 0 解决此问题,但它没有解决我的问题。

git continuous-integration github-actions nrwl-nx git-fetch
1个回答
0
投票

:affected
命令之前执行以下命令,以确保您的 CI 环境在您的分支中具有明确的可用主干。

git rev-parse --verify main || git remote set-branches origin main && git fetch --depth 1 origin main && git branch main origin/main

它的作用是

  • 验证
    main
    分支是否明确(请参阅 git rev-parse
  • 否则执行以下命令:
    1. 设置远程跟踪的分支列表(请参阅git set-remote
    2. 从 main 重新获取最后一次提交(以便能够与受影响的进行比较)
    3. 设置本地
      main
      的远程跟踪以匹配
      origin/main

但是,如果您已经在

main
上运行该命令,这将会失败,因此您应该只在分支中执行它。

你的

yml
中类似的东西应该可以解决问题:

if: github.ref != 'refs/heads/main'
run: git rev-parse --verify main || git remote set-branches origin main && git fetch --depth 1 origin main && git branch main origin/main
© www.soinside.com 2019 - 2024. All rights reserved.