【PowerShell】いらないgitのブランチまとめて削除するスクリプト組んでみた

【PowerShell】いらないgitのブランチまとめて削除するスクリプト組んでみた

はじめに

コジマです。

たくさんブランチ切って開発してるといらんブランチ溜まってくな~って思って
まとめてごっそり削ぎ落とすためのスクリプトをPowerShellで組みました。

前提

もちろんgitコマンドが使えること。
動作環境はWindows10だよ。

仕様

簡単な仕様だよ

  • 予め$gitFolderという変数に作業フォルダを設定しておく
  • git branchコマンドで取得したブランチを削除していく
  • develop, master, 現在のブランチは削除の対象外とする
  • 万が一のこともあるので、Y/nを受け付けるようにしている

実装

こんな感じで作りました。
難しいことは何もしてないです。

# gitのリポジトリがあるフォルダを指定
$gitFolder = "自分の環境に合わせてね"
cd $gitFolder

# PowerShellはコマンドの実行結果をそのまま
# 変数に代入できる
$branches = @(git branch)

# 改行区切りで配列とみなしてくれるので
# foreach使える
foreach ($b in $branches){
    # スペースは置換してなくしておく
    $b = $b.Replace(" ", "")
    # developとmasterは残す
    if($b -eq "develop" -or $b -eq "master"){
        continue
    }
    # 現在いるブランチも残す
    if($b.IndexOf("*") -ne -1){
        continue
    }
    # ブランチを削除する
    $ans = Read-Host "ブランチ[$b]を削除してもよろしいですか?「Y/n」(規定値は`"Y`")"
    if($ans -eq "n"){
        continue
    }
    # ブランチを削除する
    git branch -D $b
}

# 最後に確認
git branch

出力結果はこんな感じです。
test1~test5の不要ブランチを作成し、
test5を現在のブランチとした状態で実行しました。

test1だけnで残し、test2~test4はYを選択し、削除しました。

ブランチ[test1]を削除してもよろしいですか?「Y/n」(規定値は"Y"): n
ブランチ[test2]を削除してもよろしいですか?「Y/n」(規定値は"Y"): y
Deleted branch test2 (was f4297d7).
ブランチ[test3]を削除してもよろしいですか?「Y/n」(規定値は"Y"): y
Deleted branch test3 (was f4297d7).
ブランチ[test4]を削除してもよろしいですか?「Y/n」(規定値は"Y"): y
Deleted branch test4 (was f4297d7).
  develop
  master
  test1
* test5

さいごに

ブランチ切りまくっていらないブランチ溜まってる人はぜひ参考にしてみてください。

PowerShellってあんまり人気ないけど、すごく便利なのでいろんな事やって
もっと魅力を伝えていきたい!

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


PowerShellカテゴリの最新記事