【Git】git pull で、cannot lock ref ‘refs/remotes/origin/***’: is at XXX but expected YYY とエラーがでる

  • Git

git pull でローカルのブランチを更新しようとしたところ、下記のようなエラーになり pull が実行できませんでした。git pull origin ブランチ名 であれば成功するようで、特定のブランチが更新できない影響のようでした。

error: cannot lock ref 'refs/remotes/origin/***': is at XXXXX but expected XXXXX
From https://github.com/****
 ! XXXX..XXXX  *** -> origin/Feature/*** (unable to update local ref)

解決

削除?変更?されたブランチがローカルに残ってしまったせいのようなので、リモートで削除されたブランチをローカルで削除したところ解決しました。

git remote prune origin

dry-run オプションをつけることで、どのブランチが削除されるか確認できるようです。

git remote prune --dry-run origin

また、git pull --prune でリモートで削除されたブランチを削除しつつ pull することができるようなので、こちらも有用そうです。

参考

https://gotohayato.com/content/473/