# Git branch の表示・変更・削除

Git ブランチの作成、一覧表示、名称変更、削除を行うコマンドいろいろあります。

# ブランチ確認するコマンド

# ローカルブランチの一覧を確認
git branch

# リモート含めてブランチの一覧を確認
git branch -a
git branch --all

# マージ済のブランチの一覧
git branch --merged

# マージされていないブランチを一覧
git branch --no-merged

# リモートブランチの一覧を表示
git branch -r
git branch --remote

# ブランチの詳細情報を表示
git branch -v
git branch --verbose

# 該当コミットIDの詳細を表示
git show -s

# ブランチの名前を変更

ローカルのブランチ名を変更する方法

# 現在のブランチ名をnew-branchに変更
git branch -m new-branch

# old-branchブランチ名をnew-branchに変更
git branch -m old-branch new-branch

# Git ブランチを削除する

基本的に、メインブランチにマージして開発作業が完了したら、子ブランチを削除することが推奨されています。
Git では、現在のブランチを削除することはできないので、削除対象以外のブランチにチェックアウトして削除作業を行う必要があります。

リポジトリ削除に、ワイルドカード(*)などの正規表現は使えません。

# 現在のブランチにマージ済みの場合のみ削除
git branch -d my-branch
git branch --delete my-branch

# 強制削除
git branch -D my-branch
git branch -df my-branch
git branch --delete --force my-branch


# リモートで削除されたブランチをローカルから削除
git fetch --prune
git fetch -p

# リモートブランチ削除
git push --delete origin my-branch
git push origin :my-branch

# マージ済みのブランチのみ削除ができる

git branch -d my-branch

マージされていないブランチをこのコマンドで削除しようとするとエラー出ます。
error: The branch ‘my-branch’ is not fully merged.

# マージされていないブランチでも削除できる

強制削除コマンドのため、慎重に

git branch -D my-branch

# merge 済のものを一気に削除

merge 済のブランチを一気に削除できる方法

git branch --merged|egrep -v '\*|develop|master'|xargs git branch -d

コマンド内容

  1. git branch --merged コマンドでマージ済のブランチを取得
  2. egrep で develop, master を除いたものを取得
  3. xargs を使って、git branch -dの引数に渡して削除

上記コマンドを実行することで、develop master を除いたマージ済みのブランチすべてを削除することができます。
末尾にある-d-D に変更すれば、未 merge も含めて全て削除できます。

xargs コマンドは標準入力を読み込み、それを引数として指定したコマンド実行してくれます。

2022-02-07
  • git