削除
ローカルブランチ
git branch -d branch_name
mergeしてないブランチだったりするとerrorが起きて本当に消していいなら-D
オプション使えよ、ってメッセージが出ます。
リモートブランチ
git 1.7.0以降なら
git push --delete origin branch_name
バージョンを問わない場合は
git push origin :branch_name
なんでコロンで削除になるのか?
今さら聞けないgit pushコマンド - Shoichi Matsuda's diary
「何もないものをリモートのhogeにpushする = hogeの存在を何もないものにする = hogeを削除」です。
すごく参考になる…。
merge済みリモートブランチをまとめて削除
コマンドをパイプで組み合わせてやります。
- hogeにmerge済みのリモートブランチを表示
- origin/の状態になっているのでorigin/をトリミング
- ブランチ名が取り出せたのでxargsに渡して削除していく
- 上記のコマンド群をつないで実行
1. git branch -r --merged hoge
2. sed -e 's% *origin/%%'
3. xargs -I{} git push --delete origin {}
-- ↓これが4
$ git branch -r --merged hoge | sed -e 's% *origin/%%' | xargs -I{} git push --delete origin {}
これを実運用するときに注意したいのは、手順1でマージ済み一覧を表示する際に、hogeがmasterを取り込んでいる場合にmasterにすでにmerge済みのものも出てくること。
mergeしたまま残しておきたいというブランチがいるかもしれないので目視で消していいかどうか確認する必要があった。