【Git】ローカルブランチ削除の方法を初心者向けにわかりやすく解説
はじめに
Gitを使って開発を進めていると、ローカルブランチがどんどん増えていくことはよくあります。
作業が終わったブランチを放置していると、どこで何をしていたのかを見失いがちです。
そこで、不要になったブランチは削除しておくと、作業効率の面でも気持ちの面でも整理しやすくなります。
今回の記事では、git ローカルブランチ 削除に関する基本的なコマンドから、実務での利用シーンまでをわかりやすく解説します。
初めてGitを触る方でも安心して進められるよう、図やコード例を交えながら進めていきましょう。
この記事を読むとわかること
- ローカルブランチを削除する方法と流れ
- 実務でローカルブランチを削除するタイミング
- 削除コマンドのオプションや使い分け
- エラーやトラブルへの対処方法
ローカルブランチとリモートブランチの違い
ローカルブランチを削除する具体的な手順に入る前に、まずはブランチの種類についておさえておきましょう。
Gitでは、同じプロジェクトのソースコード管理をしていても、「ローカル」と「リモート」の2種類のブランチが存在します。
ローカルブランチは、自分のパソコンで作ったブランチのことです。
自分だけが編集したり削除したりできるので、実験的にコードを書いてみるのにも便利です。
一方、リモートブランチは、GitHubやGitLabなどのリモートリポジトリ上に保管されるブランチです。
複数人の開発で共同作業をするときは、リモートブランチに変更内容をプッシュして確認してもらうのが一般的です。
ここで大切なのは、ローカルブランチを削除しても、リモートブランチが削除されるわけではないという点です。
ローカルだけでなくリモートでも不要になったブランチを消したい場合は、別のコマンドが必要になります。
ローカルブランチ削除の基本コマンド
不要になったローカルブランチを削除する方法として、まずは次のコマンドが有名です。
git branch -d <ブランチ名>
このコマンドは、すでにマージ済みのブランチであれば安全に削除できる、という特徴があります。
例えば、main
やmaster
ブランチに作業内容を統合(マージ)している場合は、-d
オプションでブランチを削除するのが一般的です。
しかし、まだマージが完了していないブランチの場合は、-d
コマンドを使うとエラーが発生します。
マージしていない変更がある状態のブランチは、意図せず削除してしまうと作業内容が失われるリスクがあるため、Gitがブロックしてくれるのです。
強制的に削除する -D オプション
マージが済んでいないブランチをどうしても消したいときは、次のように-D
を使います。
git branch -D <ブランチ名>
-D
を使うと、強制的にブランチを削除できます。
ただし、この操作によって削除するブランチの変更履歴が必要な場合は、復元が難しいこともあるので注意しましょう。
マージやバックアップを取り忘れていた場合は、本当に削除してよいかをよく確認することが大切です。
誤ってブランチを消してしまうと、作業内容の復元が難しくなる可能性があります。
大事な変更が残っていないか、事前にチェックしてから実行するようにしましょう。
実務での活用シーン
実務では、開発中に**「feature/〇〇」や「fix/〇〇」**など、目的別の名称でブランチを作るケースが多いです。
複数の機能を同時並行で開発したり、バグ修正用のブランチを急いで作成したりするうちに、ローカルブランチがどんどん増えることがあります。
実務でローカルブランチを削除する主なタイミングは以下のとおりです。
- プルリクエストで他の開発者からレビューを受け、変更がメインブランチにマージされた後
- 開発途中で方向性が変わり、作業内容を破棄する場合
- チームの作業が落ち着いたタイミングで、不要ブランチを一気に掃除する場合
このように、こまめにローカルブランチを削除しておけば、ブランチ一覧が煩雑になるのを防げます。
ローカルブランチを削除する具体的な手順
では、実際にローカルブランチを削除する流れを整理してみましょう。
以下では、マージ済みのブランチを想定して進めます。
1. 作業中のブランチを確認する
ブランチを削除しようとしたとき、現在のブランチが削除対象になっているとエラーになる場合があります。
削除対象のブランチとは別のブランチに移動しておきましょう。
git switch main
最近のGitではswitch
コマンドが推奨される傾向にありますが、checkout
でも同様に切り替え可能です。
2. ブランチ一覧を確認する
ローカルにどんなブランチがあるかを確認したいときは、次のコマンドを使います。
git branch
現在いるブランチには*
マークが付きます。
削除したいブランチがどれかを確かめ、タイポに注意しながら進めましょう。
3. 基本は -d で削除する
変更内容がすでに他のブランチにマージされている場合は、次のコマンドで削除ができます。
git branch -d feature/add-login
ここでfeature/add-login
は例としてあげているブランチ名です。
マージが終わっていれば、安全に削除できるはずです。
4. マージされていない場合は -D を検討する
もしマージしていないブランチだった場合、-d
オプションではエラーが出て削除できません。
それでも削除が必要な場合は、先ほど説明したように-D
オプションで強制的に削除できます。
git branch -D feature/old-experiment
ただし、マージされていないコードが失われないか、再度確認してから実行することをおすすめします。
よくあるエラーや対処方法
ローカルブランチ削除でつまずくポイントとして、代表的なエラーや対処方法をまとめました。
現在のブランチを消そうとしてエラーになる
以下のようなメッセージが表示される場合があります。
error: Cannot delete branch 'feature/add-login' checked out at 'path/to/repo'
これは、削除しようとしているブランチが今まさにチェックアウトしているブランチであることが原因です。
対策としては、別のブランチに移動してから再度削除コマンドを実行しましょう。
マージが終わっていないブランチを削除できない
こちらはエラーメッセージに**"The branch 'xxxx' is not fully merged."** と出ることが多いです。
マージされていないので、誤って作業内容が失われないよう、Gitがブロックしている形です。
もし本当に必要のない変更内容であれば、-D
オプションを使って強制削除します。
ただし、必要な変更の存在をうっかり忘れている場合は、先にメインブランチにマージしたりバックアップを取ったりしたうえで削除すると安心です。
マージされていないブランチを強制削除した場合でも、Gitの履歴を遡ればコードを取り出す方法はあります。
しかし、初心者にとっては復元手順が複雑なので、基本的にはマージやバックアップをおすすめします。
ブランチ削除後の確認と運用
ローカルブランチを削除しても、リモートには同名のブランチが残っていることがあります。
チーム開発で扱うリポジトリでは、リモート側も整理しておかないと混乱の原因になるかもしれません。
とはいえ、今回のテーマはローカルブランチ削除です。
リモートブランチを削除する際は、git push origin --delete <ブランチ名>
のようなコマンドが必要になりますが、まずはローカルをきれいに保つところからスタートするとよいでしょう。
ローカルブランチを削除したあとの確認としては、git branch
で一覧を再度チェックしてみてください。
削除対象だったブランチが消えていれば成功です。
ついでにほかにも不要なブランチがあれば、一気に削除してしまってもよいでしょう。
まとめ
今回は、git ローカルブランチ 削除に焦点をあてて、削除コマンドの基本や実務的な活用シーン、トラブルシューティングなどを解説しました。
ブランチを整理するだけで、開発の流れがすっきりすることは多いです。
作業効率を上げるためにも、定期的にローカルブランチを削除して、レポジトリを見やすく維持してみてください。
不要なブランチが増えてしまうのは、ある意味Gitを積極的に使っている証拠でもあります。
しかし、使わなくなったブランチが多いほど迷子になりやすいのも事実です。
ぜひこの記事を参考に、作業状況に合わせてローカルブランチをうまく整理していきましょう。