プログラミングをしていて、作業ごとにブランチを作成しているので、ローカルブランチが溜まりがちです。
ChatGPTに毎回コマンドを聞くのも申し訳ないので、操作をまとめておきます。
マージ済みのブランチを確認する
この操作の肝になるのが、マージ済みのブランチを一覧表示することです。
$ git branch --merged
このコマンドではマージ済みのブランチを一覧表示できます。このコマンドでは現在のブランチも含まれており、現在のブランチを示す*
がついています。
また、main
ブランチも含まれている点に注意が必要です。
現在のブランチ、mainブランチを除く
現在のブランチを削除できないのでこれを除外します。また、main
ブランチは削除されると困るのでこれも除外します。grep -v
で除外できるのでこれを使って除外します。
$ git branch --merged | grep -v "\*" | grep -v "main"
もし、mainブランチではなくmasterブランチであれば、
$ git branch --merged | grep -v "\*" | grep -v "master"
としてください。
マージ済みのブランチを削除する
マージ済みのブランチを削除するには、git branch -d
を使用します。-D
を使用すると未マージのブランチを削除できてしまうので、-d
を使う点に十分注意してください。
$ git branch -d <削除するブランチ名>
前述のマージ済みブランチのリストをgit branch -d
に渡すにはxargs
コマンドを使用します。
$ git branch --merged | grep -v "\*" | grep -v "main" | xargs -n 1 git branch -d
マージ済みのブランチは
$ git branch --merged
bug/bad-request-when-exception-occurs
bug/remove-pysqlite3-from-pyproject
bug/update-readme-md
doc/add-codacy-badge
doc/update-doc-and-readme
doc/update-document
enhance/enhancing-the-way-router-is-set-up
のようにブランチ名だけがリストされ、このブランチ名をgit branch -d
コマンドに渡せばいいので、-n 1
(渡す標準入力は1つ)を指定しています。
まとめ
頻繁に使用するコマンドは忘れませんが、時々しか使わないコマンドは忘れがちです。ChatGPTなどに訪ねればすぐに答えを教えてくれるので、それほど困ることはありませんが、以下のようにコマンド化しておけばすぐに使えます。(コマンドを忘れるという可能性はありますが)
# Git Branch Clear
gbc() {
git branch --merged | grep -v "\*" | grep -v "main" | xargs -n 1 git branch -d
}
ローカルブランチは容量を圧迫するような類いのものではありませんが、あまり溜まりすぎると探しにくくなったりするの、個人的には綺麗にしておきたいと思っています。
プルリクのマージ後に削除すればいいのですが、どうしても忘れてしまうので、思い立ったときに一括削除できるようにしておくくらいがちょうどいいと思います。