【Git】git clone ブランチ指定で狙ったブランチをコピーする方法をわかりやすく解説
はじめに
皆さんがリモートリポジトリを手元にコピーするときに使うのがgit cloneです。
通常、git clone
を行うとリポジトリ全体が複製され、デフォルトブランチがそのままチェックアウトされます。
しかし、開発ブランチや安定版など、特定のブランチだけを直接クローンしたい場合もあるでしょう。
そこで役立つのがgit clone ブランチ指定の方法です。
この記事では、ブランチを指定してクローンする手順と、実際の現場でどんなシーンで使われるのかをわかりやすく解説します。
この記事を読むとわかること
- git clone でブランチを指定するメリット
- 実務で想定される具体的な活用シーン
- よく使われるコマンド例とその使い方
- トラブルシュートのポイント
git clone でブランチを指定するメリット
Gitリポジトリをクローンするときにブランチを指定する方法は、作業効率やディスク容量の観点でメリットがあります。
まず、開発の途中で一部のブランチだけ確認・編集したいときに役立ちます。
また、不要なブランチをすべてクローンする必要がないため、データ転送量やクローン後の管理がシンプルになります。
大人数で協力して開発しているプロジェクトでは、短期的に作業するブランチのみ取得したいことが多々あるはずです。
たとえば、新機能を実装するために分岐したブランチが大量にある場合、その全てが手元に不要なこともあります。
そうしたときに必要なブランチだけを最初からクローンすれば、余分なファイルや履歴を取得しなくて済むのです。
結果として、初回のクローン処理にかかる時間やストレージ使用量を節約できるというメリットが生まれます。
開発ブランチでの実装作業
複数人が並行して新機能を開発している現場では、機能ごとにブランチが作られていることがよくあります。
たとえば、新機能featureX
の実装はfeature/featureX
ブランチ、バグ修正の作業はfix/bug123
ブランチというように、それぞれのブランチに分かれて作業します。
この場合、他の開発者が用意したブランチのみをクローンすれば、デフォルトブランチをチェックアウトしてからブランチを切り替える手間を省けます。
明確に対象を絞ることで、作業のスピードアップにつながるはずです。
また、別のリポジトリでプロトタイプを作成しているケースがあれば、そのブランチだけを最初から取得して検証に集中できるでしょう。
このように、ブランチ指定は実装作業をより効率的に進めるためのテクニックだと言えます。
安定ブランチでのテスト
システムの安定版ブランチを管理しているプロジェクトでは、緊急で修正が必要になる場合もあります。
不具合が発生した際に、安定ブランチ(たとえばrelease
やstable
など)に直接対処するシーンは珍しくありません。
そうしたとき、リポジトリの全ブランチは不要で、必要な安定ブランチだけをクローンしてテストを進められれば作業がスムーズです。
実際の業務では、あらかじめ用意されているテストスクリプトなどが同梱されたブランチを単体でクローンすることもあります。
この方法なら、特定のタグやリリースに紐づく安定ブランチを一括で取得できるので、テスト環境の構築が素早く完了します。
git clone ブランチ指定の具体的なコマンド例
ここでは、実際にどのようなコマンドを使うとブランチ指定が行えるのかをまとめます。
初心者の方は「-b オプション
や--single-branch
をどう使えばいいのか」が最初のハードルになりやすいかもしれませんが、心配ありません。
見慣れないオプションが出てきても、必要となるシーンを想定しながら確認すると理解しやすくなります。
-b オプションを使う方法
ブランチを指定してクローンするには、-b
または--branch
というオプションを利用します。
もっとも基本的な書き方は以下の通りです。
git clone -b <ブランチ名> <リポジトリURL>
例として、リモートリポジトリのURLがhttps://github.com/example/myproject.git
で、ブランチ名がfeature/new-design
の場合は次のようになります。
git clone -b feature/new-design https://github.com/example/myproject.git
これによって、リポジトリをクローンした直後の状態でfeature/new-design
ブランチに切り替わった状態になります。
従来のやり方だと、git clone
してからgit checkout feature/new-design
と2ステップ踏む必要がありましたが、このオプションを使えば一度で済むわけです。
--single-branch を使う方法
デフォルトでは、クローン時にリポジトリのすべてのブランチ履歴が取得されます。
しかし、--single-branch
オプションを併用すると、指定したブランチの履歴だけを取得するように制限できます。
不要なブランチの情報をダウンロードしないことで、ストレージ消費やネットワーク負荷を抑えられるメリットがあります。
使い方は以下の通りです。
git clone -b <ブランチ名> --single-branch <リポジトリURL>
たとえば、ブランチ名がfix/hotfix-001
の場合はこんな感じになります。
git clone -b fix/hotfix-001 --single-branch https://github.com/example/myproject.git
この方法を使うと、本当にそのブランチに関するコミット履歴だけが取得されます。
全ブランチの情報は含まれませんので、もし他のブランチを切り替えたいときは、追加の操作が必要になります。
クローン後にブランチを切り替える方法
万が一、クローン後に別のブランチに移動したいときは、下記のようにgit checkout
やgit switch
を使って切り替え可能です。
# 古くから使われている方法 git checkout <ブランチ名> # switchコマンドを使う方法 git switch <ブランチ名>
--single-branch
を利用してクローンした場合には、そもそも他のブランチ情報を取得していないため、別のブランチに移動できないことがあります。
この点は意図した動作ですので、チームメンバーと相談して必要なブランチだけを確実に取得するようにしましょう。
よくある利用シーン
実際の現場では、以下のようなシーンでブランチ指定のクローンが役立ちます。
- 特定機能の開発中のブランチをすぐに確認したいとき
- 大規模リポジトリから、小規模の機能ブランチだけを軽量に取得したいとき
- 緊急対応用の修正ブランチを単体でテストしたいとき
上記のようなケースに該当する場合は、不要なファイル群をダウンロードしなくて済むため作業がスピーディーになります。
ブランチ指定のクローンは、作業時間の短縮とチーム内での混乱回避に一役買ってくれます。
複数のリポジトリを並行して扱う大規模プロジェクトでも、必要なブランチだけクローンしておけば管理がスムーズになります。
トラブルシューティングと対策
ブランチ指定のクローンを行う際に、いくつかハマりがちなポイントがあります。
初心者の方は、ここを押さえておくとスムーズに作業できるでしょう。
リポジトリURLやブランチ名の誤り
リポジトリのURLやブランチ名を間違えると、クローンが失敗するか、意図せず別ブランチがチェックアウトされることがあります。
まずはリポジトリのURLとブランチ名を正しく確認しましょう。
ブランチ情報がリモートにない
クローンしたいブランチがリモートにプッシュされていない場合もクローンに失敗します。
「ローカルで作成したブランチをリモートに上げ忘れた」というケースが意外と多いので、チームメンバーや自身の作業状況を改めて確認してください。
間違って--single-branchを使った
クローン後に別のブランチへ切り替えたいのに、--single-branch
を付けてしまい、他ブランチへ移動できなくなることもあります。
この場合は、改めて全ブランチが取得できる形でクローンし直すか、必要なブランチ情報をgit fetch
で追加取得することを検討するといいでしょう。
--single-branchを使うと、他のブランチ情報が手元にない状態になります。
後から別のブランチが必要になりそうな場合は、慎重にオプションを選びましょう。
まとめ
今回はgit clone ブランチ指定の基本的な使い方と、そのメリットや実際の利用シーンについてご紹介しました。
ブランチを明確に指定してクローンすることで、作業効率の向上や管理のしやすさが期待できます。
皆さんが日々の開発で「ブランチを切り替えながら作業するのは面倒だな」と感じたときには、ぜひ今回の方法を試してみてください。
クローン時のオプションを適切に使いこなすと、プロジェクトの規模が大きくなっても問題なく対応できるでしょう。