背景
開発しているとローカルのブランチが増えてきて、どれがマージ済みでどれがマージされていないかわからなくなってくる。ローカルのブランチを一気に削除するか、マージ済みなものだけを削除しておきたい場合がある。
仕様
- ベースブランチが
masterまたはmainを想定
開発しているとローカルのブランチが増えてきて、どれがマージ済みでどれがマージされていないかわからなくなってくる。ローカルのブランチを一気に削除するか、マージ済みなものだけを削除しておきたい場合がある。
masterまたはmainを想定git branch | grep -Ev "master|main" | xargs git branch -D
git branchでローカルのブランチの一覧を取得して、grepでmasterとmainを除外して、xargsでgit branch -Dに渡してローカルのブランチを削除する。
git branch --merged | grep -Ev 'master|main' | xargs git branch -D
git branch --mergedでマージ済みのリモートブランチの一覧を取得できる。それをgrepでmasterとmainを除外して、xargsでgit branch -Dに渡してローカルのブランチを削除する。
事前にgit fetchをしておくと良い。