Menu
Coddy logo textTech

Git: ローカルブランチを削除する

最終更新

ブランチの作業がマージされたら、git branch -d <branch> で削除します。どこにもマージされていないコミットがブランチに残っている場合、Git は削除を拒否します - これは安全のためのチェックです。それでも削除するには、大文字の -D を使います。ローカルブランチを削除してもリモート上のコピーには一切影響しません。それは別のコマンドです。

これらをターミナルプレイグラウンドで試してみましょう - ブラウザ内の本物のシェルで、インストール不要です。

git branch -d はブランチのポインタだけを削除します。マージ済みのコミットは main の履歴に残ります。

構文

CommandWhat it does
git branch -d featurefeature を削除する(マージ済みの場合のみ)
git branch -D feature未マージでも feature を強制削除する
git branch -d branch1 branch2複数のブランチを一度に削除する

よくあるケース

GoalCommand
マージ済みブランチを削除するgit branch -d old-feature
未マージブランチを強制削除するgit branch -D scratch
今いるブランチを削除するgit switch main の後に git branch -d feature
どのブランチがマージ済みか確認するgit branch --merged

実践例

機能を完成させてマージし、ローカルブランチを片付けます。

StepCommandResult
1git switch main削除したいブランチから離れる
2git merge feature機能のコミットを main に取り込む
3git branch -d featureマージ済みになったブランチを削除する

Git ローカルブランチ削除に関するよくある質問

git branch -d と -D の違いは何ですか?
-d は安全な削除です。Git はコミットが別のブランチに既にマージされている場合にのみブランチを削除するため、誤って作業を失うことがありません。-D は強制削除(--delete --force の短縮形)で、未マージのコミットがあっても何があってもブランチを削除します。通常は -d を使い、ブランチのコミットを本当に捨てたいと確信しているときだけ -D を使いましょう。
今チェックアウトしているブランチを削除するにはどうすればいいですか?
チェックアウト中のブランチは削除できません。まず git switch main(または git checkout main)で別のブランチに切り替えてから、git branch -d feature を実行します。現在のブランチを削除しようとすると、Git は "Cannot delete branch ... checked out" というエラーを出します。
ローカルブランチを削除すると GitHub 上でも削除されますか?
いいえ。git branch -d はローカルリポジトリからブランチを削除するだけです。リモート(GitHub、GitLab など)上のブランチは、git push origin --delete feature で別途削除するまで残ります。
削除したブランチを復元できますか?
最近のものであれば、たいてい可能です。git reflog を実行してブランチが指していたコミットを見つけ、git branch feature <commit-hash> で再作成します。コミットはすぐにはガベージコレクションされないため、誤って削除したブランチは通常復元できます。
これをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開けば、これらのコマンドをブラウザ内の本物のシェルで実行できます - インストール不要です。体系的に学びたくなったら、Coddy の無料のインタラクティブな Git コースが、最初のコミットからブランチ操作やマージまでステップバイステップで案内します。
Coddy programming languages illustration

Coddy で Git を学ぼう

始める