koogawa log

iOS、Android、foursquareに関する話題

Git で不要になったリモートブランチを削除する

こんなブランチ構成だとする。

$ git branch -a
* master
  ios7
  remotes/origin/HEAD -> origin/master
  remotes/origin/ios7
  remotes/origin/master

ios7のブランチを消したい。

まずはローカルブランチを削除
$ git branch -d ios7
Deleted branch ios7 (was 57c1b0b).
リモートブランチも削除
$ git push origin :ios7
To https://xxx.git
 - [deleted]         ios7
確認
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

ちゃんと消えた!

push で消すのとか、:hoge で指定するのとか、最初ちょっと戸惑った。

2014.3.9 追記

id:shoma2da さんが :hoge のコロンの意味を教えてくれました。

これを読んだら、削除するのに 何故 push コマンドを使うのか、その理由がスッキリしました。


おまけ

ついでにリモートブランチをローカルにチェックアウトする方法も。

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/ios8
  remotes/origin/master

ios8 ブランチがローカルにないのでチェックアウトしたい場合。

$ git checkout -b ios8 origin/ios8

remotes/ は不要。-b オプションを付けると自動的にそのブランチに切り替わる。