まるごと持ってくる
git cloneは、GitHubなどに置いてあるリモートリポジトリを、自分のパソコンに持ってくるコマンドです。
git clone git@github.com:user/repo.git
「ファイルをダウンロードする」のと似ていますが、持ってくるのは今のファイルだけではありません。
つまり、リポジトリがそっくりそのまま手元にできます。GitHubの画面から「Download ZIP」でダウンロードすることもできますが、それだと最後の状態のファイルが得られるだけで、履歴も接続先も付いてきません。Gitの機能が何も使えない、ただのフォルダになります。
接続先が付いてくるので、あとの操作が短くなる
cloneしたリポジトリには「originという名前で、あそこと繋がっている」という設定が最初から含まれています。
これが地味に大きくて、git remote addを一度も打たずに済みます。 変更を送るときも、オプションなしのgit pushだけで、ちゃんと元の場所に届きます。
手元でゼロから作った場合は、この設定を自分で足す必要があります。だからこのサイトでは、GitHub側で先に作ってからcloneする順番をおすすめしています。
どこにできるのか
今いる場所の下に、リポジトリ名のフォルダが作られます。
cd ~/webbuild # 作業用のフォルダに移動してから
git clone git@github.com:user/repo.git
cd repo # ~/webbuild/repo ができている
「実行したら何も起きなかった」と感じたときは、たいてい別の場所にできています。 pwdで今どこにいるかを確かめ、lsで中身を見てください。cloneする前に、置きたい場所へcdしておくのがコツです。
2種類のURL
GitHubの「Code」ボタンを押すと、URLの形式が2つ表示されます。
git@github.com:user/repo.git # SSH形式
https://github.com/user/repo.git # HTTPS形式
どちらでも持ってこられますが、変更を送り返す(push)ときに違いが出ます。 SSH形式なら登録した鍵で自動的に認証されます。HTTPS形式だと、そのつど認証情報を求められることがあります。
このサイトでは、最初にSSHの鍵を登録してしまう前提なので、SSH形式を使います。
他人のリポジトリでも同じ
git cloneは、自分のものでなくても、公開されているリポジトリなら誰のものでも持ってこられます。世の中に公開されているソフトウェアを手元で動かしてみる、というのも同じコマンド1つです。
持ってきた後、それを元の場所に送り返す権限は(当然ながら)ありませんが、手元でいじって動かして眺める分には自由です。エージェントに「このリポジトリ、何をするものか読んで説明して」と頼めるようになります。