0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ローカルの不要なブランチをまとめて削除するshell

Posted at

gitのブランチが気づいたら大量にできてしまったときに、特定のキーワードを入力すれば候補を確認のために表示して問題なければまとめて削除できるshellを作ってみました。

例えば以下のようにfix/以下のhogeXXブランチは残したいけどfugaXXブランチは削除したいときに使うと便利かもです。
スクリーンショット 2022-11-20 21.25.57.png

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を叩く

スクリーンショット 2022-11-20 21.29.33.png

削除したいブランチ名の一部を入力(ここではfuga)を入力するとfix/fugaXXのブランチの該当箇所が色付きで一覧で表示されますので削除前に確認しましょう。

問題なければyを入力するとまとめて削除できます。
スクリーンショット 2022-11-20 21.32.46.png
ブランチを確認するとfix/fugaXXのブランチが削除できていますね。
スクリーンショット 2022-11-20 21.33.14.png
また、fixをキーワードとして入力するとfix/配下のブランチをまとめて削除することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?