お仕事でエンジニアしてないと本当にどんどん忘れて言っててヤバイって感じてる今日このごろな訳です。
マージしたブランチの消し忘れとか不要なブランチが残ってると見通しが悪くなるのでリモートリポジトリのブランチは定期的に整理したい訳です。で、リモートのブランチを削除する方法。gitHubとかBitbucketとか使ってるとサービス上で削除できるのですが、まぁコマンドで削除する方法を。忘れてたので、メモしておきます。
リモートのブランチを削除する手順
$ git branch -a * master release/20160229 remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/release/20160229
こんな感じにブランチがあります。 release/20160229はmasterにマージしてリリースしたので削除したいと思います。
ローカルのブランチを削除する
まずローカルのブランチを削除する必要があります。
$ git branch -d release/20160229
リモートのブランチを削除する
$ git push origin :release/20160229
削除できているか確認する
$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master
git push でリモートのブランチが消える理由
リモートのブランチにpushする時は通常下記のような感じにします。
git push origin foo
これは
git push origin foo:foo
が省略されたものです。
つまり、こんな感じのイメージです。
git push origin [ローカルのブランチ]:[リモートのブランチ]
なので、:ブランチ名
でpushするとリモートのブランチが削除できるのは
git push origin [空]:[リモートのブランチ]
リモートのブランチに何もない空のブランチをpushするので、
リモートのブランチが「何もない空」になる => 削除される
って事みたいです。
理由を知っておけば覚えていられそうな気がしてきました!
[参考]

- 作者: Jon Loeliger,吉藤英明(監訳),本間雅洋,渡邉健太郎,浜本階生
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/02/19
- メディア: 大型本
- 購入: 7人 クリック: 287回
- この商品を含むブログ (45件) を見る