Git-ローカルブランチを綺麗にする(リモートと同期する)

リモートブランチに存在しないかつマージ済みのブランチをすべて削除する

ローカルのGit環境を綺麗にするには以下のコマンドを実行します。


$ git checkout master
$ git pull

$ git fetch -p
$ git branch --merged | grep -v '*' | xargs git branch -d

解説

masterブランチに切り替えて、更新しておきます。


$ git checkout master
$ git pull

git fetchコマンドに–prune(-p)オプションをつけることで、fetch前に存在しなくなったリモートブランチを削除してくれます。


$ git fetch --prune
$ git fetch -p

"git branch --merged"コマンドにてマージ済のブランチを取得します。
それに対してgrepで現在ブランチ(master)を除いたものを取得します。
最後に、それらに対してxargsを使って、"git branch -d"の引数に渡して削除を行います。


$git branch --merged | grep -v '*' | xargs git branch -d


ブランチを表示する方法

ローカル branch 一覧表示


$ git branch

リモート branch 一覧表示には「-r」オプションを指定します。


$ git branch -r

ローカルのブランチを削除する方法

マージ済の場合

すでにpushしたものに対しては以下で削除が可能です。


$ git branch --delete localbranch

未マージの場合

マージをし終えていないブランチの場合、「--delete」では警告が出てきて削除ができません。
「--delete」の代わりに「-D」を使い、明示的に削除指示をします。


$ git branch -D mergedbranch


関連ページ