Gitでpullしようとしたら、あるブランチにエラーが出て、pull出来なくなった。
エラー内容
error: cannot lock ref 'refs/remotes/origin/feature/abc/#123': 'refs/remotes/origin/feature/abc' exists; cannot create 'refs/remotes/origin/feature/abc/#123'
どうやらブランチ名が重複しているので、作成できなかったと言っているらしい。(上記のようにスラッシュで区切って別ブランチっぽい名前にしていてもダメみたい)
でも、リモートでは「feature/abc」ブランチを削除済なんだけど、なんでだろう?
原因
ローカルに追跡ブランチがのこっていたことが原因っぽい。
試しにfetchしてみると、リモートで削除したブランチがズラーッと出てきた。
古いリモートブランチを削除する(git remote prune)
コマンドだと、以下の通り。
git remote prune
とかやったら、古いリモートブランチが削除される。
TortoiseGitの同期画面にも「古いリモートブランチをクリーンナップ」というメニューがある。
prune(〈余分な枝を〉おろす,切り取る)したら、無事にpullできるようになった。