1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Git clean branch

Last updated at Posted at 2020-12-17

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?