Ruby, Rails, Git再入門 削除済みのremote branchをgit branch -aから削除する方法

photo credit: Bev Goodwin via photopin cc

ブランチを切って作業後にプルリクエストでmasterにマージし、ブランチを削除していたものの、以下のようにgit branch -aを実行すると大量に削除したbranchが出てきた。そこで削除の手順を調べたので、記載する。

現在のbranch状況を確認する方法

$ git branch
  issues/17
* master
  updating-users-exercises-09
$ git branch -a
  issues/17
* master
  updating-users-exercises-09
  remotes/origin/HEAD -> origin/master
  remotes/origin/issues/17
  remotes/origin/issues/7
  remotes/origin/issues/9
  remotes/origin/master
  remotes/origin/updating-users-exercises-04
  remotes/origin/updating-users-exercises-05
  remotes/origin/updating-users-exercises-06
  remotes/origin/updating-users-exercises-07
  remotes/origin/updating-users-exercises-08
  remotes/origin/updating-users-exercises-09

remotes以下がすべて赤字で表示され、remotesにかなり大量に削除したbranchが存在しているのが分かる。

現在のbranch状況を同期する方法

$ git fetch --prune
From https://github.com/changeworld/sample_app
 x [deleted]         (none)     -> origin/issues/7
 x [deleted]         (none)     -> origin/issues/9
 x [deleted]         (none)     -> origin/updating-users-exercises-04
 x [deleted]         (none)     -> origin/updating-users-exercises-05
 x [deleted]         (none)     -> origin/updating-users-exercises-06
 x [deleted]         (none)     -> origin/updating-users-exercises-07
 x [deleted]         (none)     -> origin/updating-users-exercises-08

x [deleted]と表示されたブランチが既に削除したbranchになる。再度確認すると、消えているのが分かる。

$ git branch -a
  issues/17
* master
  updating-users-exercises-09
  remotes/origin/HEAD -> origin/master
  remotes/origin/issues/17
  remotes/origin/master
  remotes/origin/updating-users-exercises-09