✨
Gitのブランチ一括削除
ローカルブランチを一括削除
git branch -l | grep -E *-bak | xargs git branch -d
解説
git branch -l
ローカルブランチの一覧を取得する
出力結果
$ git branch -l
hoge
* hoge-bak
main
grep -E *.-bak
git branch -l
で取得したローカルブランチ一覧から、正規表現を使って-bak
で終わるブランチを抽出する
出力結果
$ git branch -l | grep -E *-bak
* hoge-bak
xargs git branch -d
grep
結果のブランチを削除する
出力結果
git branch -l | grep -E *-bak | xargs git branch -d
Deleted branch hoge-bak (was a22de8f).
リモートブランチを一括削除
git branch -r | grep -E *-bak | cut -d "/" -f 2 | xargs git push --delete origin
解説
git branch -r
リモートブランチの一覧を取得する
$ git branch -r
origin/hoge
origin/hoge-bak
grep -E *.-bak
同上
出力結果
$ git branch -r | grep -E *-bak
origin/hoge-bak
cut -d "/" -f 2
origin/hoge-bakからhoge-bakのみを取得する。
-d "/"
で/
に区切って、cut -f 2
で区切った文字列の2つ目を取得する。
今回だとoriginとhoge-bakの2つに区切られて、そこから2つ目のhoge-bakを取得する。
出力結果
$ git branch -r | grep -E *-bak | cut -d "/" -f 2
hoge-bak
xargs git push --delete origin
grep
結果のリモートブランチを削除する
$ git branch -r | grep -E *-bak | cut -f 2 -d "/" | xargs git push --delete origin
To github.com:shibainurou/zenn-contents.git
- [deleted] hoge-bak
Discussion