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