マージ済みブランチの一覧
現在のブランチにマージ済みのブランチ
以下のようなコミットツリーでmain
ブランチをcheckoutしている状態とする。
* 1733330 ← main(現在checkoutしているブランチ)
|\
| * faa9689 ← branch2
* | db084b3
|\|
| * a493c0a ← branch1
|/
* 6221a00 init
現在のブランチ(main
ブランチ)にマージ済みのブランチ一覧を表示するには--merged
オプションを使って以下のように実行する。
$ git branch --merged
branch1
branch2
* main
現在のブランチ(main
ブランチ)にマージ済みのブランチbranch1
、branch2
(とmain
自身)が表示される。
指定したブランチにマージ済みのブランチ
以下のようなコミットツリーで、現在branch3
をcheckoutしている状態とする。
* ac01cdd HEAD ← branch3(現在checkoutしているブランチ)
* 1733330 ← main
|\
| * faa9689 ← branch2
* | db084b3
|\|
| * a493c0a ← branch1
|/
* 6221a00 init
branch3
をcheckoutしている状態(main
ブランチをcheckoutしている状態)でmain
ブランチにマージ済みのブランチ一覧を表示するには
--merged
オプションにブランチ名を指定して以下のように実行する。
$ git branch --merged=main
branch1
branch2
main
main
ブランチにマージされているbranch1
、branch2
(とmain
自身)が表示される。
マージ済みブランチの一括削除
main
ブランチにマージ済みのブランチはほとんどの場合不要なので一括で削除したい。
$ git branch --merged=main | grep -v main | grep -v '*' | xargs git branch -d
Deleted branch branch1 (was a493c0a).
Deleted branch branch2 (was faa9689).
上記コマンドは以下の流れで一括削除する。
git branch --merged=main
でmain
ブランチにマージ済みのブランチ一覧を表示するgrep -v main
でmain
ブランチを除外するmain
ブランチにマージ済みのどれかのブランチを現在checkoutしている場合は削除できないのでgrep -v '*'
で現在のブランチを除外するxargs git branch -d
で渡されたブランチ一覧を削除する
\第一線のプログラマーの行動原理を学べる!/