Local branch の整理
ローカル branch 一覧表示
$ git branch
master branch にマージ済みのブランチ表示
$ git checkout master
$ git branch --merged
master branch にマージ済みのローカルブランチの削除
$ git branch -d {masterにマージ済みのブランチ}
master branch にマージ済みでないブランチ表示
$ git checkout master
$ git branch --no-merged
リモート branch 一覧表示
$ git branch -r
リモート branch 状態確認
stale と表示されたブランチは誰かがリモートで削除済みだが、自分のローカルと同期されていない
$ git remote show origin
リモートで削除されているリモートブランチを削除
--dry-run で削除対象のブランチを予めチェックできる
$ git remote prune origin --dry-run
$ git remote prune origin
リモートブランチの最新状態を取得
-p でリモートブランチの削除を同期
$ git fetch -p
Remote branch の整理
率先してリモートブランチを整理する担当者がいない限り、リモートリポジトリには古いブランチが溜まってしまいがちです。
前述した git remote prune origin の後、リモートブランチのリストを同期する必要があります。
リモート master に既に merge されたブランチを表示
$ git checkout master
$ git branch -r --merged
リモート master に merge 済みの各ブランチの最終コミット日や作成者を表示
ブランチを削除すると元に戻せないため、慎重に行う必要があります。
上のコマンドでは、あまり詳細な情報が表示されないため、最終コミット日や作成者を確認した上で削除するために、以下のようなコマンドを試すことが出来ます。
$ git checkout master
$ for branch in `git branch -r --merged | grep -v HEAD`; do echo -e `git show --format="%ci %cr %an" $branch | head -n 1` \\t$branch; done | sort -r
リモート ブランチの削除
$ git push origin --delete branch-name
or
$ git push origin :branch-name
リモート master に merge されていない各ブランチの最終コミット日や作成者を表示
master に merge する必要の無いブランチも残っているかもしれません。
それについても、最終コミット日や作成者を確認するため、以下のようなコマンドを試すことが出来ます。
$ git checkout master
$ for branch in `git branch -r --no-merged | grep -v HEAD`; do echo -e `git show --format="%ci %cr %an" $branch | head -n 1` \\t$branch; done | sort -r