プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

Gitクローンとは?git cloneコマンドの基本から応用テクニックまで徹底解説

git cloneコマンドは、リモートリポジトリのコピーをローカルマシン上に作成するためのコマンドです。デフォルトでは、cloneコマンドはリポジトリと同じ名前のフォルダにコードを保存します。クローン元リポジトリのURLの後にフォルダ名を指定することで、この挙動を変更することも可能です。

Gitバージョン管理システムにおいて、別の場所に保存されているリポジトリのローカルコピーを作成することは、最も重要な操作の一つです。

git cloneコマンドを使えば、どこかに保存されているリポジトリのローカルコピー(「クローン」とも呼ばれます)を作成できます。

このチュートリアルでは、git cloneコマンドの基礎を解説します。ローカルおよびリモートリポジトリのクローン方法や、ベアリポジトリのクローン方法についても取り上げます。

git cloneコマンドとは?

git cloneコマンドは、既存のリポジトリのコピーを、ローカルコンピュータ上の作業ディレクトリに作成します。

クローンはGitの中核的な機能です。クローンを使うことで、メインのバージョンから独立したコードのコピーを作成できるためです。このコピーはローカルマシン上で自由に実行・編集でき、メインバージョンのコードには一切影響を与えません。

つまり、準備が整うまでリポジトリ本体に変更を加える必要はありません。変更が完了したら、コードをリモートリポジトリにプッシュして保存できます。あるいはプルリクエストを作成し、他の開発者に自分の書いたコードをレビューしてもらうことも可能です。

Gitでリポジトリをセットアップする方法は2つあります。git cloneコマンドで既存のリポジトリをクローンするか、git initコマンドで新しいリポジトリを作成するかのどちらかです。

リポジトリのクローン作成は、通常一度だけ行う作業です。一度クローンしてしまえば、Gitリポジトリで作業するために必要なすべてのコードがローカルマシン上に揃います。

さらに、git cloneコマンドはリポジトリに関連付けられたすべてのメタデータも一緒にクローンします。リポジトリをクローンすれば、プロジェクトの全履歴の記録が手に入ります。プロジェクトに関連付けられたすべてのGitブランチも同時にクローンされます。

git cloneの基本的な使い方

git cloneコマンドは、既存のリポジトリのクローンをローカルマシン上の新しいディレクトリに作成します。リポジトリをローカルマシンにクローンすると、リポジトリのコードが保存される新しい環境が生成されます。

実際にgit cloneコマンドを使ってリポジトリをクローンする例を見てみましょう。ここでは、GitHub上のリポジトリをローカルマシンにクローンしたいとします。

次のようなコマンドライン操作でプロジェクトをクローンできます:

git clone https://github.com/username/project-name.git
cd project-name

最初のコマンドは、指定したGitHubのURLに保存されているリポジトリをもとに、新しいGitリポジトリを作成します。コードが格納されるフォルダ名はリポジトリ名と同じになります。この場合、Gitは「project-name」という名前のフォルダを作成します。

続いて、cdコマンドで新しいGitリポジトリに移動します。これで新しいリポジトリ内に入ったので、ファイルの閲覧や編集をすぐに始められます。

カスタムクローン操作

git cloneコマンドは複数のパラメータを受け付けます。これらのパラメータを活用することで、目的に合わせたカスタムクローン操作が可能です。ここでは、git cloneを使う際に知っておきたい主要なカスタム操作の例を紹介します。

特定のフォルダにクローンする

デフォルトでは、クローン元のリポジトリと同じ名前のフォルダが自動的に作成されます。最初の例ではフォルダ名を指定せずにリポジトリをクローンしたため、作成されたコピーのフォルダ名は「project-name」になりました。

しかし、リポジトリをクローンする際に、特定のフォルダへクローンしたいケースもあるでしょう。そのような場合は、クローン先となるディレクトリ名を明示的に指定します。

git cloneコマンドには第2引数を渡すことができます:

git clone <repo> <folder>

例えば、架空のGitリポジトリの内容を「my-project」というフォルダにクローンしたいとしましょう。次のコードで実現できます:

git clone https://github.com/username/project-name.git my-project
cd my-project

まず、参照先のGitHubリポジトリがクローンされます。この例ではフォルダ名として「my-project」を指定しているため、リポジトリのコードはこのフォルダ内に展開されます。その後、cdコマンドでgit cloneコマンドが作成したmy-projectフォルダに移動します。

シャロークローン(浅いクローン)を作成する

デフォルトでは、リポジトリをクローンすると、そのコミット履歴もすべて一緒にクローンされます。プロジェクトに何百ものコミットが蓄積されている場合、ローカルクローンの作成に時間がかかることがあります。

リポジトリ全体をクローンするのを避けたい場合は、シャロークローン(shallow clone)を作成しましょう。シャロークローンでは、「depth」パラメータで指定された範囲のコミット履歴のみがクローンされます。

シャロークローンを作成する構文は以下の通りです:

git clone --depth=1 <repo>

「depth」パラメータの値は、クローンしたい過去のコミット数を表します。この例ではdepthに1を指定しているため、cloneコマンドは最新のコミットのみをローカルマシンにコピーします。

例えば、架空のGitHubリポジトリに10,000件のコミットがあるとしましょう。完全にコピーするには相当な時間がかかります。そこで、現在のコードと直近10件のコミットだけを取得し、リポジトリの全履歴までは不要という場合は、次のコードを使用します:

git clone --depth=10 https://github.com/username/project-name.git

上記のコマンドにより、現在の状態のプロジェクトのコピーが作成されました。リポジトリの履歴を10コミット分さかのぼって確認できますが、それより前のコミットに関するデータは含まれていません。

より高度な設定オプションについては、git cloneコマンドに関する公式Gitドキュメントを参照してください。

GitでサポートされるURLの種類

git cloneコマンドは、さまざまな種類のURLに対応しています。git cloneは通常リモートリポジトリのクローンに使用されるため、ここではGitがサポートする主なURL形式を紹介します。

Gitプロトコル

gitプロトコルは、Gitバージョン管理システムを使ってリポジトリをクローンする際に使用されるプロトコルです。gitプロトコルには認証機能がない点に注意してください。gitプロトコルを使用するURLの例は以下の通りです:

git://host.com/repo/path.git

URLが「git:」で始まることで、Gitクライアントに対してgitプロトコルを使ってリポジトリをクローンするよう指示しています。

SSH

Secure Shell(SSH)は、ネットワーク上のサーバーにリモートアクセスするための仕組みです。SSHは認証機能を提供するため、セキュアなGitリポジトリへのアクセスにはSSH URLがよく使われます。SSHプロトコルを使用するGit URLの例は以下の通りです:

ssh://user@host.com/repo/path.git

この例の「user」は、対象のリポジトリにアクセスしようとしているユーザー名を指します。リポジトリをクローンする前に、SSH経由でのサインインが必要です。

HTTP / HTTPS

Hypertext Transfer Protocol(HTTP)は、インターネット上でWebページのデータを転送するために使用されるプロトコルです。HTTP URLはGitリポジトリでも広く利用されています。HTTPSを使用するGit URLの例は以下の通りです:

https://host.com/repo/path.git

この例では、リポジトリはHTTPSプロトコルを使用しています。「git」や「ssh」の代わりに、GitリポジトリURLの先頭に「https」を指定します。

まとめ

git cloneコマンドは、Gitリポジトリのローカルコピーを作成するために使用されます。クローンを活用すれば、プロジェクトのメインバージョンに影響を与えることなく自由に編集できる、独立したリポジトリのコピーを手に入れられます。

変更内容をプロジェクトのメインバージョンに反映する準備が整ったら、コミットを作成しましょう。

このチュートリアルでは、具体的な例を交えながらgit cloneコマンドの使い方を解説しました。これであなたも、プロのエンジニアのようにgit cloneを使ってリポジトリをクローンできるはずです!

  1. Gitリセットでコミットを取り消す!基本から実践テクニックまで徹底解説

    個人でもチームでも、プロジェクトを進めていると「コミットを取り消したい」という場面に遭遇することがあります。そんなときに頼りになるのが git reset コマンドです。まさに命綱とも言えるツールの一つでしょう。 Gitの追跡メカニズム git reset を理解する前に、まずGitの内部構造について押さえておきましょう。Gitは、ノードとポインタで構成されるツリー構造によってファイルを管理・追跡しています。 ローカルのGitリポジトリには、基本的に次の3つの「ツリー」が存在します。 作業ディレクトリ(Working Directory):ワーキングツリーとも呼ばれ、ローカルディレク

  2. GitとGitHubの使い方入門:初心者向けステップバイステップガイド

    GitHubは現在、世界最大のオープンソースプロジェクトホスティングサービスです。Atomテキストエディタ、GoogleのTensorFlow、Facebook(現Meta)のReactなど、有名なプロジェクトが多数公開されています。ビッグデータ、人工知能(AI)、IoTといった先進的な分野のプロジェクトで特に知られていますが、アニメーション、絵文字、ゲーム、シンプルなソフトウェアなども見つけることができます。仕組みは「トレント」にやや似ていますが、扱う対象がソフトウェアやアプリである点が異なります。 GitHubを使い始めたばかりの方にとって、学習曲線はかなり急に感じられるかもしれません。