LINEで現役エンジニアに直接質問してみよう!登録無料

【git入門基礎】git cloneとは?

git cloneとは、リポジトリをリモートからローカルにコピーするためのコマンドです。プログラムの開発には、開発者全員が使っているリモートリポジトリから、自分の開発用のローカルリポジトリを作るための使います。

git cloneの基本的な使い方

git cloneは下記のに使います。

構文:

$ git clone [url]

使用例

git clone https://github.com/github/gitignore.git

リモートリポジトリの指定方法は3種類ある

git cloneには、リモートを指定する必要がありますが、その指定方法には3種類あります。

  • SSHプロトコル(方式)
  • HTTP(S)プロトコル(方式)
  • GITプロトコル(方式)

gitのやり取りでは、認証やセキュリティ面から「SSHプロトコル(方式)」がよく使われます。

SSHプロトコル(方式)

SSH認証を使用して、リポジトリをpushしたりcloneしたりします。SSHは標準でSSH鍵を使い、データの暗号化や認証を行ってくれるので、自前でリポジトリを管理したり、GitHubなどと通信したりするときによく使われます。

$ git clone [email protected]:exampleuser/example.git

HTTP(S)プロトコル(方式)

READ専用のリポジトリを公開して、不特定多数に使ってもらう時や、フォークして独自開発をしてもらう時などに使用します。Basic認証をつけることも出来ますが、生のIDとパスワードをURLに記述しなくてはいけないので、そのような使われ方はあまりされません。

$ git clone https://github.com/github/gitignore.git

GITプロトコル(方式)

Gitに標準でついている特別な方式です。Git通信を行うのに9418ポートを開く必要がありますし、認証を行う仕組みがありません。そのため、READ専用リポジトリとして公開する場合のみ使用されます。

利点としては、Gitがサポートしている方式の中で一番高速な通信を行うことが出来ます。公開されているプロジェクトで大量の通信が必要なときには、この方式を利用すると短時間でローカルにcloneすることが出来ます。

しかし、そこまで大きなプロジェクトが世の中にあまりありませんし、SSHやHTTP(S)で十分事足りるので、使われることは稀です。

$ git clone git://example.com/project.git

git clone応用編

git cloneには様々なオプションがあります。それらのオプションを使うと、便利に使うことが出来ますので、見ていきましょう。

リモートリポジトリから特定のブランチやタグをcloneする

リモートリポジトリからcloneした後、即座にブランチやタグにcheckoutすることが出来ます。

構文:

$ git clone [repo] -b [branch or tag]

サーバー用のベアリポジトリを作成する

ベアリポジトリとは、作業ファイルの無いリポジトリの事です。より具体的には、.gitの中身のみのリポジトリの事です。サーバー上では、作業ディレクトリやファイルなんて必要ありませんからね。

git clone --bareを使うと、ローカルリポジトリからサーバー用のベアリポジトリ(≒リモートリポジトリ)を作成することが出来ます。

$ git git clone --bare ./project project.git
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。