gitのブランチが気づいたら大量にできてしまったときに、特定のキーワードを入力すれば候補を確認のために表示して問題なければまとめて削除できるshellを作ってみました。
例えば以下のようにfix/
以下のhogeXXブランチは残したいけどfugaXXブランチは削除したいときに使うと便利かもです。
shellの中身
.shell
#!/bin/bash
echo "削除したいブランチ名の一部を入力してください。"
read KEYWORD
LIST=($(git branch | grep -E --color=always $KEYWORD))
printf "%s\n" "${LIST[@]}"
if [ ${#LIST[@]} = 0 ]; then
echo "該当するブランチがありません。"
else
echo "${#LIST[@]}個のブランチを削除しますか? y or n"
read INPUT
if [ $INPUT = "y" ]; then
git branch | grep $KEYWORD | xargs git branch -D
else
echo "ブランチの削除をキャンセルしました。"
fi
fi
上記shellを任意の場所に配置
私はデスクトップに配置していますが、お好きなディレクトリに配置しましょう。
terminal上で削除したいブランチがあるディレクトリに移動して用意したshellを叩く
削除したいブランチ名の一部を入力(ここではfuga)を入力するとfix/fugaXX
のブランチの該当箇所が色付きで一覧で表示されますので削除前に確認しましょう。
問題なければy
を入力するとまとめて削除できます。
ブランチを確認するとfix/fugaXX
のブランチが削除できていますね。
また、fix
をキーワードとして入力するとfix/
配下のブランチをまとめて削除することができます。