Gitで特定のブランチだけをクローンする方法:実践ハウツーガイド
git clone --single-branch --branch コマンドを使うと、リポジトリから特定のブランチだけをクローンできます。このコマンドにより、リポジトリ内のすべてのブランチをダウンロードすることなく、必要なブランチの内容だけをコピー可能です。リポジトリが大きく、使用するコードだけを取得したい場合に非常に便利です。
デフォルトでは、git clone コマンドはGitリポジトリのすべてのブランチを複製します。特定のブランチだけをクローンしたい場合は、--single-branch フラグを指定する必要があります。
このガイドでは、git clone コマンドを使って特定のブランチをクローンする方法を解説します。実際の例も交えて説明するので、理解を深めるのに役立ちます。
クローンとは?
クローンとは、別の場所でホストされているリポジトリのコピーをローカルマシンに保存することです。git clone コマンドを使用してリポジトリをクローンできます。
git clone コマンドがあれば、Gitバージョン管理サーバー側はWebインターフェースを提供する必要がありません。コマンドラインから直接、Gitリポジトリのコピーをダウンロードできます。
特定のブランチだけをクローンすることは、リポジトリがディスク容量に与える影響を抑える一般的な方法です。プロジェクトのすべてのブランチをクローンするわけではないためです。後から必要なブランチが見つかった場合は、いつでもダウンロードできます。
Gitで特定のブランチをクローンする
git clone --single-branch --branch コマンドは、Gitリポジトリから特定のブランチをクローンします。--branch の後にクローンしたいブランチ名を指定します。リポジトリをクローンした後でも、必要な他のブランチはいつでもダウンロードできます。
--single-branch オプションを使うと、clone コマンドが取得するブランチを制限できます:
git clone --single-branch --branch <branch-name> <url>
<branch-name> にはクローンしたいブランチの名前を指定します。指定したブランチが存在しない場合、このコマンドはエラーを返します。<url> にはブランチをクローンする元となるリポジトリのURLを指定します。
Gitで特定のブランチをクローンする:実例
ここでは、ck-git というリポジトリを例に説明します。このリポジトリには master と dev の2つのブランチがあります。dev ブランチで作業する予定はないため、master ブランチだけを取得したいと考えます。
master ブランチだけを取得するには、--single-branch オプションを付けて git clone コマンドを実行します:
git clone --single-branch --branch master https://github.com/career-karma-tutorials/ck-git
--single-branch フラグの後に --branch フラグの値を指定しています。ここでGitにどのブランチをクローンするかを伝えます。次に、通常の git clone コマンドと同様に、クローンしたいリポジトリのURLを指定します。
コマンドを実行するとどうなるか見てみましょう:
Cloning into 'ck-git'... remote: Enumerating objects: 37, done. ... Unpacking objects: 100% (37/37), done.
git clone コマンドによって、ck-git リポジトリがローカルマシンにコピーされました。--single-branch フラグを使用したため、「master」ブランチだけがクローンされています。
「master」ブランチだけがクローンされたことを確認するには、新しいプロジェクトフォルダに移動して git branch コマンドを実行します:
cd ck-git/ git branch
git branch コマンドは、ローカルリポジトリに保存されているすべてのブランチを一覧表示します:
* master
クローンされたのは1つのブランチだけです。これが master ブランチです。
単一のブランチをクローンしたい場合は、必ず --single-branch フラグを指定してください。--branch フラグだけでは、リポジトリに移動した際にチェックアウトするブランチを指定するだけであり、クローン操作では依然としてリポジトリ内のすべてのブランチが取得されてしまいます。
--single-branch フラグは、Git バージョン 1.7.10 以降でサポートされています。
リモートブランチをフェッチする
1つのブランチしかダウンロードしていないため、プロジェクト内の他のブランチのコードを見ることはできません。
そこで「dev」ブランチのコピーも必要になったとしましょう。心配いりません。最初にリポジトリをクローンした後でも、リモートブランチをフェッチできます。git checkout コマンドを使って「dev」ブランチを取得しましょう:
git checkout --track origin/dev
このコマンドは「origin」上の dev ブランチを取得します。「origin」とは、自分のリポジトリが関連付けられているリモートリポジトリを指します。
「dev」ブランチはローカルブランチとして保存され、その後GitのHEADが「dev」ブランチに切り替わります。つまり、それまで表示していたブランチから「dev」ブランチへと移動することになります。
まとめ
git clone --single-branch --branch コマンドを使えば、Gitリポジトリから特定のブランチだけをクローンできます。このコマンドは、1つのブランチに関連するすべてのファイルとメタデータを取得します。他のブランチが必要になった場合は、後からフェッチすればOKです。
Gitについてさらに学びたい方は、オンライン学習リソース、コース、書籍などの情報を活用し、初心者からエキスパートへとステップアップしていきましょう。
-
Git cherry-pickの使い方をステップバイステップで解説
開発を始めたばかりの頃、多くの人はgitのコマンドを繰り返し使う中で自然と覚えていきます。git pull、git push、git commitといった基本的なコマンドの意味はすぐに理解できるでしょう。しかし、規模の大きいプロジェクトに参加し、チームで開発するようになると、コードベースのバージョン管理履歴を整理された状態に保つために、より高度なgitコマンドを学ぶ必要が出てきます。 そのようなコマンドの一つが「git cherry-pick」です。このコマンドは、あるブランチから特定のコミットだけを取り出し、別のフィーチャーブランチやmasterブランチのHEADに適用したい場合に使用しま
-
Gitでブランチを削除する方法|ローカル・リモート両方のコマンドを徹底解説
Gitでブランチを削除するのは、ブランチをコードベースにマージした後によく行われる作業です。ローカル環境のブランチは git branch -d コマンドで、リモートリポジトリ上のブランチは git push origin --delete コマンドで削除できます。 ブランチ機能を使うと、プロジェクトの独立したバージョンを作成し、メインのプロジェクトに影響を与えることなく自由に編集できます。作業が完了したブランチは削除するのが基本で、これによりコードベースを常にクリーンな状態に保てます。 Gitでブランチを削除する方法は主に2つあります。どちらを使うかは、削除したいブランチがローカルマシン