これは何
gitのブランチは、気を抜くと膨大になりがちです。そのままでも実害はないですが、ブランチが増えすぎると、checkoutなどで該当のブランチを探すのも面倒になるため、できれば不要なものは整理しておきたいです。
とはいえ毎回手動で不要なブランチの削除を行うのも面倒なので、僕は使っているエディタのVimの起動スクリプトで不要なローカルブランチを削除するようにしていいます。
この記事ではその方法を短文ですが紹介します。
結論
以下のコードをvimrc
に記載すれば完了です。
call system("git branch -d $(git branch --merged | grep -v main | grep -v master | grep -v '*')")
コマンドの説明
call
call
はVim scriptで関数を呼び出すための構文です。今回はsystem
という関数を呼び出しています。
system
system
はVim script内でシェルコマンドを実行するための関数です。これを用いるとシェルコマンドをVim script内で実行できます。今回はgit branch -d $(git branch --merged | grep -v main | grep -v master | grep -v '*')
というコマンドを実行しています
git branch -d $(git branch --merged | grep -v master | grep -v '*')
このシェルコマンドは、大きくふたつ分けることができます
git branch -d
git branch --merged | grep -v main | grep -v master | grep -v '*'
一つ目のコマンドは「指定されたブランチを削除する」コマンドです。
二つ目のコマンドは「不要なブランチを指定洗い出す」ためのコマンドになります。
二つ目のコマンドで洗い出したブランチを、一つ目のコマンドで削除している、という流れになります。
二つ目のコマンドは以下のようなことをしています。
- マージされたブランチの一覧を表示する
- ブランチの一覧から以下のブランチを取り除く
- main
- master
- チェックアウトしているブランチ
git branch -d $(git branch --merged | grep -v master | grep -v '*')
で、この条件に合致するブランチのみを削除することができます。