Gitでfetchをしたときに以下のようなエラーが発生しました。
error: cannot lock ref 'refs/remotes/origin/AAA': 'refs/remotes/origin/AAA/test' exists; cannot create 'refs/remotes/origin/AAA'
! [new branch] AAA -> origin/AAA (unable to update local ref)
このエラーがどういう意味かというと、「AAA/testというブランチがあるのでAAAというブランチを作れません」ということです。これはGitの仕様のようです。
AAA/testは既にリモートリポジトリから削除されており、ローカルのブランチを削除できない状態に陥っていました。
「git remote prune」を実行してエラーを解消する
このgit remote prune
を使用することでローカルから削除することができます。
$ git remote prune [ブランチ名]
私の場合、対象のブランチがorigin
だったのでgit remote prune origin
を実行しました。
$ git remote prune origin
Pruning origin
URL: [リモートリポジトリのURL]
* [pruned] origin/[ブランチ名]
* [pruned] origin/[ブランチ名]
* [pruned] origin/[ブランチ名]
* [pruned] origin/[ブランチ名]
に表示されたブランチが削除されたブランチです。