我在 CI 中使用 NX 和 GitHub Actions,并使用 actions/checkout@v4 签出存储库。
当我尝试使用
nx affected:...
,例如 nx affected:lint
或 nx affected:test
时,它失败并出现以下错误:
致命:不明确的参数“main”:未知修订版或路径不在 工作树。使用“--”将路径与修订版分开,如下所示: 'git [...] -- [...]'
问题是
main
分支不可用。我尝试按照 checkout 操作文档的建议使用
fetch-depth: 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)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