фатальный: невозможно создать '/home/circleci/project/.git/index.lock': файл существует

Я выполняю шаг в своем рабочем процессе, который выполняется git checkout branchname сразу после встроенного - checkout шага CircleCI, и я получаю следующую ошибку: fatal: Unable to create '/home/circleci/project/.git/index.lock': File exists.

Ветвь branchname уже существует. Он создается как часть этого пошагового процесса, все, что делает yarn addFilesToCommit, - это запускает этап сборки, который добавляет пару файлов JSON в отслеживаемую папку. Если branchname не существует, сборка выполняется, только при последующих запусках она завершается ошибкой.

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.lock и rm -rf /home/circleci/project/.git/index, как упоминается в некоторых других сообщениях, но безуспешно.

Если я запустил сборку и ssh в нее, похоже, команда выполнила без проблем. Где я здесь ошибаюсь?


person James Ives    schedule 28.01.2020    source источник


Ответы (1)


замените первую строку на git checkout -b branchname && git checkout branchname

pipe не гарантирует последовательного выполнения (см. здесь) , вот почему вы получаете эту ошибку, в основном ваш checkout вызывается еще до того, как ваш checkout -b завершится

person jalsh    schedule 28.01.2020
comment
pipe не гарантирует последовательного выполнения см. здесь, это почему вы получаете эту ошибку, в основном ваш checkout вызывается еще до того, как ваш checkout -b завершится - person jalsh; 28.01.2020