【Git】ブランチが削除できないときの原因と対処法(安全に消す手順)

【Git】ブランチが削除できないときの原因と対処法(安全に消す手順) Git

Gitでブランチを削除しようとして「チェックアウト中なので削除できない」
あるいは「未マージのため -d では削除できない」といったエラーに遭遇することがあります。
本記事では、代表的な2つのエラー原因と、安全に作業を進めるための確認・解決手順をまとめます。

よくあるエラー1:現在チェックアウト中のブランチは削除不可

error: Cannot delete branch 'xxx' checked out at ...
は、削除対象のブランチに自分がいる(=チェックアウトしている)状態を示します。
別のブランチ(例:main)へ移動してから削除します。

git checkout main
git branch -d release/20250922

または git switch を使っても構いません。

git switch main

よくあるエラー2:未マージのため -d では削除不可

error: The branch 'xxx' is not fully merged.
は、削除対象ブランチに未マージのコミットが残っていることを示します。
基本方針は「必要な変更は取り込んでから削除」です。

git checkout main
git merge release/20250922
git branch -d release/20250922

不要であれば強制削除も可能です。

git branch -D release/20250922

削除前の安全チェック(差分・履歴の確認)

削除してよいか判断に迷う場合は、現在の基準ブランチ(例:main)に取り込まれていないコミットを確認します。

git log release/20250922 --not main
git diff main...release/20250922

現在ブランチの確認と切り替え

今どのブランチにいるかは以下で確認できます。

git status
git branch

別ブランチへ移動するには以下を使います。

git checkout main
# または
git switch main

リモートブランチの削除

リモート側のブランチも不要なら削除します。

git push origin --delete release/20250922
git fetch --prune

万一の復旧ヒント(reflog)

誤って削除した場合は git reflog で履歴を確認し、コミットハッシュから復旧できる可能性があります。

git reflog
git checkout -b restore_branch <コミットハッシュ>

実践フロー(まとめ)

1. git status で現在ブランチを確認
2. main などへ切り替え
3. git log 削除対象 –not main で未マージ確認
4. 必要なら git merge 削除対象 → git branch -d 削除対象
5. 不要と確信できる場合のみ git branch -D 削除対象
6. リモートも不要なら git push origin –delete 削除対象

今回のエラーへの当てはめ

「チェックアウト中で削除不可」エラーは、まず別ブランチへ切り替えてから再実行。
「未マージで -d 不可」エラーは、未取り込みのコミットが残っています。
差分・履歴を確認し、必要ならマージ後に -d
不要ならリスクを理解した上で -D を使用してください。