致命:无法创建“/home/circleci/project/.git/index.lock”:文件存在

fatal: Unable to create '/home/circleci/project/.git/index.lock': File exists

我正在 运行 在 CircleCI 内置 - checkout 步骤后立即执行 git checkout branchname 我的工作流程中的一个步骤,我收到以下错误:fatal: Unable to create '/home/circleci/project/.git/index.lock': File exists.

分支 branchname 已经存在。它是作为此步骤过程的一部分创建的,所有 yarn addFilesToCommit 所做的只是 运行 一个构建步骤,将几个 JSON 文件添加到一个被跟踪的文件夹中。如果 branchname 不存在,构建将继续进行,只有在后续 运行s 时才会失败并显示错误。

git checkout -b branchname | git checkout branchname
yarn addFilesToCommit
git add .
git commit -m "Sync"
git push --force --set-upstream origin branchname

我试过 rm -rf /home/circleci/project/.git/index.lockrm -rf /home/circleci/project/.git/index 就像其他一些帖子提到的那样,但没有成功。

如果我 运行 构建并 ssh 进入它似乎 运行 命令没有问题。我哪里错了?

将你的第一行替换为 git checkout -b branchname && git checkout branchname

pipes 不保证顺序执行(see here),这就是为什么你会收到这个错误,基本上,你的 checkout 甚至在你的 checkout -b 完成之前就被调用了