ブランチいっぱい作っているとどれがマージ済みで削除していいかわからなくなったりしますよね。そんな時のためのTipsです。
使用済みブランチの削除関係Tips
リモートリポジトリ名をorigin
とする。
- ローカルのマージ済みブランチを(currentとmaster以外)消す
(現在のブランチにマージ済みなものを消すので通常git checkout master
後に使う)
git branch -d $(git branch --merged | grep -v master | grep -v '*')
- リモートのマージ済みブランチを消す
git push origin $(git branch -r --merged | grep origin/ | grep -v master | sed s~origin/~:~)
- リモートで消されたブランチをローカルに反映
git remote prune origin
- fetchする時についでに反映(
-p
は--prune
)
git fetch -p origin
合わせ技
ローカルのmasterをリモートのマスターに同期するのと同時に、既にmasterにマージされたブランチをローカル、リモート共に消す。
自分はmasterを同期させたいタイミングではいつもこのコマンドを使っています。
git checkout master && git pull origin master && git fetch -p origin && git branch -d $(git branch --merged | grep -v master | grep -v '*') && git push origin $(git branch -r --merged | grep origin/ | grep -v master | sed s~origin/~:~)