0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gitのマージしたブランチを全て消す方法

Posted at

結論

git branch --list --format='%(refname:short)' | \
  xargs -I{} -- git -c advice.forceDeleteBranch=false branch -d '{}'

何をしているか

git branch --list --format='%(refname:short)'

git branch --list はローカルに存在するブランチを全列挙します。しかし、それだと現在のブランチを意味するインジケーターが行の先頭について邪魔なので--format='%(refname:short)'で抑制します。

xargs -I{} -- ...

-I {} は後続のコマンドに出現する{} をパイプされてきた文字列で置換します。これは Git のブランチ名によるコマンドインジェクション を防ぐために重要です。単純にspreadしてしまうと、途中でセミコロンを挟むことによりコマンドが終了してしまいます。

git -c advice.forceDeleteBranch=false branch -d

-c advice.forceDeleteBranch=false はエラーメッセージを減らすための呪文です:

hint: If you are sure you want to delete it, run 'git branch -D integrate'
hint: Disable this message with "git config advice.forceDeleteBranch false"

それを無視すれば、単純にgit branch -dで、マージされているブランチならば消すという働きをします。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?