Posted at

リモートで消されたブランチが手元で残ってしまう件を解消する

More than 5 years have passed since last update.

よそからcloneしてきたリポジトリでは、remotes/origin/xxxという名前でoriginのブランチが参照される。

$ git branch -a

* master
remotes/origin/hoge
remotes/origin/fuga

だが、他の人がhogeブランチを削除してoriginにpushしても、既にそのブランチが手元にある人のローカルリポジトリからは普通にpullしても消えてくれない。

そういった既にリモートで削除されているブランチを消したい場合は、以下のどちらかの操作を実行すればちゃんと消えてくれる。


git fetchもしくはgit pullにpruneオプションをつける

--pruneオプションをつけると、fetchやpullする際に自動的にリモートで削除されているリモートブランチを削除してくれる。

$ git fetch --prune

x [deleted] (none) -> origin/hoge


git remote pruneを実行する

$ git remote prune origin

x [deleted] (none) -> origin/hoge