まくまくGitノート
Git でリモートブランチを削除する
2010-08-23

必要のないリモートブランチを削除(リモートサーバ上)

git branch -d コマンドで、ローカルのブランチを削除しても、すでに Push 済みの origin サーバ側のリポジトリは削除されません(他のみんなには見えてしまいます)。まずは、リモートリポジトリの一覧を確認します。

$ git branch -r
  origin/mybranch1
  origin/mybranch2
  origin/mybranch3

例えば、この中の mybranch2 を削除したい場合は、以下のようにして origin サーバに削除要求を送ります。 コロンだけを付けるところがポイントです。

$ git push origin :mybranch2

git push の 2 番目のパラメータで指定するリファレンス名は、<プッシュ元のブランチ名>:<プッシュ先のブランチ名> という形式を取りますが、このコロンの左側の部分を空にすることで、プッシュ先のブランチを削除する(空にする)という意味になります。

いらなくなったリモートトラッキングブランチを削除する(ローカル)

中央リポジトリ上のブランチが削除された場合でも、ローカルに作られているリモートトラッキングブランチは削除されません。以下のように必要のないリモートトラッキングブランチを削除する必要があります。

$ git fetch --prune(フェッチと同時に必要のないリモートトラッキングブランチを削除する場合)オススメ
$ git remote prune origin(必要のないリモートトラッキングブランチを削除する場合)

あるいは、以下のようにすることもできます。

$ git branch -r -d origin/mybranch(指定したリモートトラッキングブランチを削除)

前者の場合は、中央リポジトリ上から実際に削除されたブランチを、ローカルのリモートトラッキングブランチから削除します。 後者の場合は、中央リポジトリは関係なしに、指定したローカルのリモートトラッキングブランチを削除します。

2010-08-23