こちらでは、 git clone
について紹介していきます。
git cloneとは?
git clone
は、指定したディレクトリに既存のリポジトリを複製できるコマンドです。
主に、1つのシステムを複数人で、同時に開発する場合に利用します。 各々の環境に複製してから編集することで、以下のメリットがあります。
- 何かしらのトラブルが発生した場合に、容易に過去の状態に戻せる
- 同時にファイルを編集してしまった場合には警告が出るため、他人の編集内容に意図せず上書きしてしまうことを防げる
基本的な使い方
リポジトリをそのまま複製
git cloneの後にリポジトリのURLを指定して実行します。
git clone リポジトリURL
privateリポジトリの場合、clone時に認証が求められます。
クローンされると、カレントディレクトリにリポジトリの名前でディレクトリが作成されます。 作成されたディレクトリ内に、リポジトリの内容が入ります。
(例) リポジトリ「envader-scenario-1077」をクローンした場合
(カレントディレクトリ) ├── envader-scenario-1077 ├── (リポジトリの内容) └── (リポジトリの内容) └──…
別名で複製
URLの後ろにディレクトリを指定すると、そのディレクトリ内に複製されます。
git clone リポジトリURL ディレクトリ
指定したディレクトリ名でディレクトリが作成され、その中にリポジトリの内容が入ります。
(例) リポジトリ「envader-scenario-1077」をディレクトリ名「selectedDirectory」にクローンした場合
(カレントディレクトリ) ├── selectedDirectory ├── (リポジトリの内容) └── (リポジトリの内容) └──…
通信方式の指定
リポジトリをクローンするする時にも通信方式があり、http方式、git方式、ssh方式などがあります。
それぞれ git clone の後に 通信方式:リポジトリURLとするだけで通信方式を指定することができます。
http方式
http方式は、通信速度が早く高速で通信したいときに使われます。
git clone http:リポジトリURL ディレクトリ
git方式
git方式はさらに高速で通信することができます。 しかし、以下のデメリットがあります。
- 認証部分が暗号化されない
- クローンしたものの参照のみ
参照のみでpushをする必要がない時におすすめです。
git clone git:リポジトリURL ディレクトリ
ssh方式
sshは開発現場で使われることが多い方式です。 認証部分を含めたネットワーク上のすべての通信が暗号化され、安全に通信できます。しかし、他の方式と比べると通信速度が遅いため、巨大なリポジトリだとかなりの時間がかかってしまいます。
git clone ssh:リポジトリURL ディレクトリ
git cloneのオプション
git cloneにはたくさんのオプションが用意されています。 代表的なものを紹介します。
オプション一覧の表示 -h
-h
オプションをつけて実行すると、オプション一覧を確認できます。
git clone -h
(実行結果)
$ usage: git clone [<options>] [--] <repo> [<dir>] -v, --verbose be more verbose -q, --quiet be more quiet --progress force progress reporting -n, --no-checkout don't create a checkout --bare create a bare repository --mirror create a mirror repository (implies bare) -l, --local to clone from a local repository ... # 以降、省略
ブランチの指定 -b
通常、git cloneではmainブランチを取得します。 -bオプションを使うと、ブランチの指定が可能です。
git clone -b 指定したいブランチ名 リポジトリURL
クローン時のメッセージを非表示に -q
通常、clone時には進捗状況が出力されます。 -qをつけると、この進捗状況を非表示にできます。
git clone -q リポジトリURL
取得するコミット数を指定する --depth
--depthオプションで、指定した数字の回数分、直近のコミットだけを複製できます。
(例)1を指定した場合、最新のコミット分のみを複製
git clone -depth 取得したい過去のコミット数 リポジトリURL
コミット履歴が大量のリポジトリであっても、素早く複製が可能となります。
gitのその他の操作
git cloneに関連する操作について紹介します。
ブランチの一覧を表示
git branch
を実行すると、ローカル内のブランチ一覧を確認できます。
git branch
リモートリポジトリの場所を確認
リモートリポジトリがネットワーク上のどこに存在するのか調べたいときは git remote -v
を実行します。
実行することでリモートリポジトリの場所を確認できます。
git remote -v origin リモートリポジトリのURL
まとめ
今回はgit cloneについて解説しました。
複数人で開発するときに必ずといっていいほど使います。
git clone リポジトリURL
開発開始時に1回実施するだけなので、使用頻度はそこまで多くはありません。 ただ1回は絶対に使うコマンドなので、簡単な使い方だけでも覚えておきましょう。
それでは、ログイン後、ハンズオン環境を起動してみましょう。