Jenkinsのgit fetchでCannot lock refエラーが出た時の対応 | by eiryu | Medium Gitでブランチを作ろうとしたら「fatal: cannot lock ref …」と怒られた - Qiita

Gitfeature/foo というブランチがある状態で feature/foo/bar を作ろうとすると error: Cannot lock ref 'refs/remotes/origin/feature/foo/bar': 'refs/remotes/origin/feature/foo' exists; cannot create 'refs/remotes/origin/feature/foo/bar' といったエラーが出る。

発生手順

  • Aが feature/foo をpushする
  • Bがpullする
  • Aが feature/foo を消して feature/foo/bar をpushする
  • Bがpullしようとするときエラーになる

対応

git remote prune をすれば良い git pull --prune でも良さそう

note/Jenkins で、Jenkinsfileのclone時に発生した場合は Additional Behaviours のところで Prune stale remote-tracking branches を指定するとよい。 自分は知らなかったので、Jenkinsfileがクローンされるディレクトリ( ${JENKINS_HOME}/workspace/path/to/job@script ) を削除するジョブを作っていた。。

Pasted-image-

Pasted-image-