git cloneとは
システム開発に関わるようになると、Gitを使う機会が増えてきます。しかし、Gitがよく分からない、どこから始めればよいのか、戸惑う方が少なくありません。Gitとは何か、GitHubとは何か、基本的な理解が必要ですが、先ずはGitの基本操作と言える「git clone」を使ってみましょう。
Gitを使うには、リモートリポジトリをパソコンなどのローカル環境にコピーして利用するのが基本です。
この記事では、git cloneの仕組みや、効率的な使い方、知っておくと便利なオプションについて、図を交えて、わかりやすく解説していきます。Gitを使ってみようという方は、ぜひ参考にしてみてください。
【参考】:Git | Git
git cloneの活用シーン
git cloneはどのようなシーンで活用するのでしょうか?主に次のようなシーンで利用し、大変重要な機能です。Gitを利用した開発やプロジェクトでは、git cloneは必須の機能ですので、ぜひ習得することをおすすめします。
◼︎新しいプロジェクトの開始 GitHub上の公開リポジトリをクローンして、自分のローカル環境でプロジェクトを開始できます。オープンソースプロジェクトなど、他の人が管理するコードベースを利用する場合に便利です。
◼︎チーム開発への参加 チームのリモートリポジトリをクローンして、自分の環境で作業を開始します。クローンしたリポジトリを使ってコードを修正し、後でチームに貢献できます。
◼︎バックアップ リモートリポジトリをクローンして、プロジェクトのバックアップをローカルに保持することができます。サーバー障害などのリスクに備えるための対策として有効です。
GitとGitHubの基本
Gitを使う前に、ぜひ知っておきたいGitの基本について見ておきましょう。ここでは、GitやGitHubの概要や特徴、リポジトリについて解説します。
Gitとは
Gitは、バージョン管理システムの一種です。プログラムのソースコードなどのファイルを、変更履歴とともに管理することで、過去のバージョンに戻したり、複数の開発者が同時に作業したりすることができるようになります。
Gitは、無料のオープンソースですが、分散型のシステムで、ローカルリポジトリを利用して作業が行え、ファイルの差分のみを記録するため処理が高速で、並行して異なる作業ができるといった特徴を持っています。
GitHubとは
GitHubは、Gitを利用したオンラインの開発プラットフォームで、Gitで管理しているプロジェクトを、Web上で公開・共有することができます。
GitHubには、「リモートリポジトリ」をインターネット上に保存できる機能や、コードの変更を他のメンバーに提案する「プルリクエスト」、タスクやバグを管理する「イシュー」、複数の開発者で共同作業ができる「コラボレーション」といった機能があります。
【参考】:GitHub Japan | GitHub | Git
リポジトリとは
リポジトリとは、プロジェクトのコードやファイルを保存・管理する場所のことです。リポジトリには、開発者のパソコン上にあるローカルリポジトリと、 GitHubなどのサーバー上にホストされるリモートリポジトリがあります。以下の図は両者の関係を表す概念図です。
GitとGitHubの比較
GitとGitHubの違いは理解できたでしょうか?Git と GitHub は、どちらもソフトウェア開発において重要なツールですが、役割が異なります。それぞれの違いについて、特徴、機能、利用方法を比較表にまとめましたので、ぜひ参考にしてみてください。
git cloneのコマンド
git cloneはコマンド操作により、リポジトリのクローンを行うことができます。ここでは、git cloneコマンドを使うために知っておくべきこと、準備について解説していきます。
git cloneコマンドとは
git cloneとは、リモートリポジトリ(GitHubなど)に存在する、プロジェクトのコードを、自分のローカル環境に丸ごとコピーしてくるコマンドです。まるで、プロジェクトの「クローン」を作るようなイメージです。
このgit cloneを使うことで、プロジェクトの開始がスムーズになり、チームメンバーとの共同開発やリモートバックアップなどが行えるようになります。
Git Bashとは
Git Bashは、Windows環境でGitを使うためのツールです。Bashとは、LinuxやmacOSでよく使われるコマンドラインインターフェースのことで、Git Bashを使うと、Windows上でLinuxのようなコマンドを使ってGitを操作できるようになります。
Gitのインストール
Windows環境※でGit Bashを使うには、下記のサイトにアクセスし、Gitをインストールする必要があります。サイトにアクセスし、[ダウンロード]ボタンをクリックするだけで、自動的に最新バージョン2.46.2のGitがダウンロードされます。(※2024年10月執筆時点)
ローカルのダウンロードフォルダから、「Git-2.46.2-64-bit 」ファイルをダブルクリックし、画面の指示に従ってインストールします。※MacはデフォルトでGitがインストールされています。
【参考】:Git for Windows| Git
Gitのインストールが終わったら、Git Bashを起動します。検索窓にBashと入力すると検索結果の先頭に「Git Bashアプリ」が表示されますので、これをクリックします。次のようなターミナル画面が表示されたら、インストールは完了しています。ここから先は、Git Bashのターミナル上でGit コマンドを利用できます。
cloneの意味
さて、git cloneのクローンとはどのような意味なのでしょうか?クローンは「複製」を意味し、Gitではリモートリポジトリの内容をローカルにコピー(クローン)する作業のことを指します。この作業によって、リモートリポジトリと同じデータがローカル環境に作成され、独立したローカルリポジトリが完成します。
git cloneの役割
git cloneコマンドを用いることで、リモートリポジトリの全てのファイルやディレクトリ、履歴をローカル環境にコピーできます。クローンされたリポジトリは、新たに独立したローカルリポジトリとして機能し、開発者はそこから作業を進められます。
git cloneのメリット
ここでは、git cloneを利用することで、プロジェクトの複製やバージョン管理、共同開発やバックアップ、オフラインでの作業が可能になるなど、様々なメリットが期待できます。以下にそれぞれのメリットの中身を解説しましたので、ぜひ確認しておきましょう。
■ プロジェクトの複製 リモートリポジトリにあるプロジェクトの完全なコピーをローカルに作成できます。これにより、オリジナルのプロジェクトに影響を与えることなく、自由に変更や実験を行うことができます。
■ バージョン管理 クローンしたリポジトリには、元のプロジェクトの全ての変更履歴が保存されます。そのため、過去のバージョンに戻したり、変更点を比較したりすることが可能です。
■ 共同開発 チームで開発を行う場合、各メンバーがリポジトリをクローンすることで、同じプロジェクトを共有し、共同で開発を進めることができます。
■ オフラインでの作業 ローカルにリポジトリを持つことで、インターネットに接続していなくても作業を続けることができます。
■ バックアップ リモートリポジトリのバックアップとして、ローカルにコピーを保持することで、万が一のリモートリポジトリのデータ消失に備えることができます。
git cloneの基本
「git clone」とは、既に作成されたリポジトリをローカル環境にコピーするためのコマンドだと分かりました。クローンはリモートからローカルでも、ローカルからローカル、どちらもできます。
またGitはソースコード以外にも、画像やテキストファイル、ER図、UML図などの画像を生成するファイル、その他開発に使用するファイルなども格納できます。では、「git clone」の基本的な使い方について解説していきます。必ず、Bashターミナルを利用して操作をしてください。
git cloneの基本形
git cloneは、リモートリポジトリや他のリポジトリの内容を複製するコマンドです。ここでは「git clone」の基本コマンドを中心に、関連するGitコマンドも載せていますので、この機会にGitコマンドをぜひ試してみましょう。
$ git clone [リポジトリパス]
下記はgit cloneコマンドの例です。これにより指定したリモートリポジトリからローカルリポジトリに複製ができます。
$ git clone https://github.com/username/original_repo.git
■ リモートリポジトリのURL リモートリポジトリのURLは、リポジトリのメインページで確認、コピーできます。例えば、「GitHub.com」にあるPythonのリポジトリをクローンしたい場合、該当リポジトリのページで右上の「<>Code」をクリックします。
その下にリモートリポジトリのURL(図の破線箇所)が表示されますので、URLの右側にあるコピーボタンをクリックしてURLを利用します。プロトコルはGitが推奨しているHTTPSとします。
■ リポジトリのクローン リモートリポジトリのURLをコピーしたら、Bashターミナルを起動し、最初にクローンするディレクトリに移動します。ここでは作成済みのpythonディレクトリにクローンしてみます。
ディレクトリ指定をしなくとも、自動的にディレクトリが作成されますが、意図したディレクトリ名にしたい場合には、最後にディレクトリ名を指定します。
$ cd ~/python
次にgit cloneコマンドを入力し、続いてコピーしたURLをペーストして実行します。
$ git clone https://github.com/TheAlgorithms/Python.git〈クローン先のディレクトリ名〉
クローンが終了したら、lsコマンドを実行します。lsコマンドは、ディレクトリ内のファイルやディレクトリの一覧を表示する便利なコマンドですが、-hオプションを組み合わせることで、ファイルサイズを人間が読みやすい単位(KB、MB、GBなど)で表示することができます。
$ ls -lh
次の画像は、lsコマンドを実行した結果のBashターミナルの画面です。クローンにより作成されたローカルリポジトリの詳細がよく分かります。
次に、クローンして作成されたローカルリポジトリがリモートリポジトリと紐づいていることを確認しておきましょう。
「git remote -v」コマンドで紐付け状況が判断できます。
$ git remote -v
「git remote -v」をBashターミナルで実行した結果、次のように表示されれば紐付けができていると判断できます。
$ git remote -v
origin https://github.com/TheAlgorithms/Python.git (fetch)
origin https://github.com/TheAlgorithms/Python.git (push)
【参考】:リポジトリをクローンする | GitHub Docs
git cloneの主なオプション
git cloneコマンドには、いくつかオプションがあり、これを利用することで、必要な部分だけをクローンすることができ、ディスク容量の削減やクローン時間の短縮を図れます。ここではよく使われるgit cloneの主なオプションを紹介します。
◼︎–depth リポジトリの特定のコミットまでの履歴のみをクローンするオプションです。「--depth 1」は最新のコミットのみをクローンします。
$ git clone --depth 1 <リポジトリのURL>
◼︎–branch 特定のブランチのみをクローンしたい場合に使うオプションです。ブランチ名の指定が必要です。ブランチ指定オプションはBオプションとも呼び、「-b」と省略できます。
$ git clone --branch <ブランチ名> <リポジトリのURL>
◼︎–single-branch 指定したブランチとその親コミットのみをクローンするオプションです。プロジェクト全体をクローンする必要がないときに使用します。
$ git clone --single-branch --branch <ブランチ名> <リポジトリのURL>
git cloneを活用してGitを使いこなそう
git cloneは、開発フローにおいて重要なコマンドだということが理解できたかと思います。git cloneは、リモートリポジトリの内容をローカルに取得し、プロジェクト作業の基盤を整える役割を果たし、チーム開発、個人プロジェクト、オープンソース参加の際に頻繁に使用されます。
git cloneの他にも、git initやgit pull、git pushといったGitコマンドを理解することで、より効率的にGitを使いこなすことができます。git cloneを手始めとして、git cloneからの流れを学び、Gitのワークフローをより深く理解していきましょう。
マイナビエージェントに無料登録して
転職サポートを受ける
その他のGitHub関連記事
その他、GitHubに関連する内容は、下記の記事でもご紹介しています。ぜひ参考にご覧ください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから