プロジェクトを Gitで管理する際に利用される機能の1つに、ブランチがあります。
ブランチは、複数人での開発や、いくつかの改修内容を並行して作業する際に役立つ便利な機能ですが、作業効率の観点から、定期的に整理する必要があるものでもあります。
そこで今回は、Gitで不要になったブランチを削除する方法について、解説したいと思います。
ローカルブランチとリモートブランチそれぞれの削除方法や、削除する際の注意点などについて詳しく説明していきますので、ぜひ参考にしてみてください。
そもそもGitのブランチ(branch)とは?
ブランチとは、コミットの履歴を分岐して記録する機能のことを言います。
ブランチによって分岐された記録は、マージによって統合されるまで他のブランチに影響を与えることがないため、機能追加や修正といった作業を行う際に、本体プロジェクトに影響を与えることなく安全に実行できるメリットがあります。
ブランチは主に、担当者ごとや開発内容別に作成されることが多いです。
そのため、並行して行う作業や開発人数が多いほどに増えやすい傾向にあります。
増えたブランチをそのままにしておくと、プロジェクト管理が大変になり作業効率が下がってしまうため、不要になった段階で削除しておくことが重要です。
git コマンドでブランチを削除する
ブランチの削除に使用するコマンドは、対象のブランチがローカルとリモートのどちらなのかによって変化します。
それぞれのブランチを削除する方法について見ていきましょう。
ローカルブランチを削除する
対象のブランチがローカルブランチの場合は、git branchコマンドに -dオプションを指定することで削除できます。
git branch -d ブランチ名ブランチの削除は、基本的にマージが完了している場合にのみ実行可能ですが、-Dオプションを指定することによって、マージの有無に関係なく強制的にブランチを削除することもできます。
git branch -D ブランチ名また、コマンドの実行前後の確認などでブランチを一覧表示したい場合も、git branchコマンドを使用します。
既存のローカルブランチを全て確認したい場合は 「git branch」、マージ済みのブランチを確認したい場合は 「git branch –merged」 で、ブランチを一覧表示することができます。
# 既存のローカルブランチを全て表示
git branch
# マージ済みのローカルブランチを表示
git branch --mergedリモートブランチを削除する
リモートブランチを削除対象とする場合は、git pushコマンドを使用します。
git push リポジトリ名 --delete ブランチ名
# 以下のコマンドでも可
git push リポジトリ名 :ブランチ名【実行例】
git push origin --delete sample_branchローカル同様、既存のブランチを一覧で確認したい場合は、git branchコマンドの -aオプション、もしくは -rオプションを指定で表示できます。
# ローカルとリモート両方のブランチを全て表示
git branch -a
# リモートブランチのみを全て表示
git branch -rブランチを削除する際の注意点
先ほども解説したように、ブランチを削除する際は基本的にマージを先に完了させておく必要があります。
マージされていないコミット内容がある状態でコマンドを実行すると、以下のようなエラーが出力されます。
git branch -d sample_branch
error: The branch ‘sample_branch’ is not fully merged.
If you are sure you want to delete it, run ‘git branch -D sample_branch’.ブランチを削除する際は、事前にブランチがマージ済みかどうかを確認してからコマンド実行するようにしましょう。
削除するブランチがマージ済みかどうかを確認する
削除するブランチの内容がマージされているかを確認する場合は、git branchコマンドの実行時に –no-mergedオプションを指定するのが一般的です。
git branch --no-merged–mergedオプションでマージ済みのブランチが一覧表示されるのに対し、–no-mergedオプションはマージが未完了のブランチを一覧表示します。
–mergedオプションでもブランチのマージ状態を確認することはもちろん可能ですが、ブランチの量が多いと確認に時間がかかってしまう場合があるので、上記のコマンドを使用するのがおすすめです。
マージ済みでないブランチを強制的に削除する
上述したように、ブランチの内容がマージされていない状態でも、-Dオプションを指定することで強制的にブランチを削除することができます。
git branch -D ブランチ名マージされていないコミット内容が全て失われてしまうため、使用頻度は高くないコマンドですが、ケースにより活用できる場合もあります。
例えば、開発中止などの理由によって、ブランチの作業内容を全て破棄したい時に、git branch -Dコマンドは削除手段の1つとなり得ます。
ただし、削除されたコミット内容を復元することは難しいため、本当に消して問題ない内容かどうか、事前によく確認してからコマンドを実行するようにしましょう。
まとめ
いかがでしたか?今回は、不要になったブランチを削除する方法について解説しました。
ブランチは、開発規模が大きかったり、頻繁に機能追加や改修が行われるプロジェクトほど膨大になりやすいので、定期的に整理をして使わなくなったブランチを削除するようにしておきましょう。
Gitの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Gitに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。