Dance with Agents

git cloneとは何か

まるごと持ってくる

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つです。

持ってきた後、それを元の場所に送り返す権限は(当然ながら)ありませんが、手元でいじって動かして眺める分には自由です。エージェントに「このリポジトリ、何をするものか読んで説明して」と頼めるようになります。

Gitの記事

Gitのページへ →