Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

GitHubのcloneについてまとめています。

GitHubでリポジトリをclone(クローン=複製)する

GitHubで公開されているリポジトリは、gitコマンドを使って、ローカルの開発環境に複製が可能です。複製の方法はいくつか用意されています。

git cloneでHTTPSを使ったクローン

gitコマンドを使い、通信はhttpsで暗号化してリポジトリをクローンします。GitHubの公式CLI、ghのリポジトリを複製してみましょう。

関連)cli/cli: GitHub’s official command line tool ghのリポジトリ

リポジトリのページにて、Codeボタンをクリックし、HTTPSの箇所に表示されるURLをクリップボードにコピー(選択して、Ctrl+C)します。

linuxなどのターミナルで、git cloneに続けてコピーしたURLをペーストします。(以下は、Ubuntu 20.04、bash環境の例)

$ git clone https://github.com/cli/cli.git
Cloning into 'cli'...
remote: Enumerating objects: 24951, done.
remote: Counting objects: 100% (2187/2187), done.
remote: Compressing objects: 100% (975/975), done.
remote: Total 24951 (delta 1387), reused 1871 (delta 1191), pack-reused 2276
Receiving objects: 100% (24951/24951), 21.62 MiB | 4.75 MiB/s, done.
Resolving deltas: 100% (16613/16613), done.

リポジトリがダウンロードされます。実行したディレクトリ以下にcliというディレクトリが作成され、ソースコードやメタファイルが複製されています。

$ cd cli
$ ls
LICENSE README.md cmd docs go.mod internal script utils
Makefile api context git go.sum pkg test wix.json

git cloneでSSHを使ったクローン

同様にgit cloneで複製をおこないますが、通信の暗号化にSSHを使います。リポジトリのページにて、SSHの箇所に表示されるURLをコピーします。URLの右にあるアイコンをクリックすることで、クリップボードへURLがコピーされます。

 

SSHでクローンする場合、事前にSSHの公開鍵をGitHubに登録しておく必要があります。登録がない場合、以下のようなメッセージが表示され、クローンが失敗します。

$ git clone git@github.com:cli/cli.git
Cloning into 'cli'...
The authenticity of host 'github.com (52.192.72.89)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.192.72.89' (RSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

鍵の生成やGitHubへの鍵の登録は、以下の記事を参照してください。

【関連記事】
GitHubにSSH接続する方法 秘密鍵・公開鍵生成と鍵の登録

SSH接続の準備完了後にクローンを実行すると、以下のようになります。

$ git clone git@github.com:cli/cli.git
Cloning into 'cli'...
Enter passphrase for key '/home/user1/.ssh/id_ed25519':
remote: Enumerating objects: 24951, done.
remote: Counting objects: 100% (2187/2187), done.
remote: Compressing objects: 100% (977/977), done.
remote: Total 24951 (delta 1387), reused 1874 (delta 1189), pack-reused 2276
Receiving objects: 100% (24951/24951), 21.62 MiB | 4.78 MiB/s, done.
Resolving deltas: 100% (16613/16613), done.

ghコマンド(GitHubのCLI)でクローン

gitコマンドではなく、GitHubのCLIコマンドでリポジトリをクローンすることも可能です。リポジトリのページで、GitHub CLIの箇所にある文字列の右にあるアイコンをクリックし、クリップボードに文字列をコピーします。

コピーした文字列をそのままターミナルで実行します。ghコマンドのインストール方法については以下を参照してください。

【関連記事】
GitHubのCLI(コマンドラインインタフェース)はghコマンド プルリクエストやissue操作にも対応

認証が済んでいない状態で実行すると、以下のメッセージが出力されます。

$ gh repo clone cli/cli
Welcome to GitHub CLI!

To authenticate, please run `gh auth login`.

メッセージに従い、gh auth loginを実行した例。キーボードの矢印キーとEnterキーで選択肢を選び、認証トークンを登録します。

$ gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Paste an authentication token
Tip: you can generate a Personal Access Token here https://github.com/settings/tokens
The minimum required scopes are 'repo', 'read:org', 'workflow'.
? Paste your authentication token:

あらためて、ghコマンドでcloneを実行します。

$ gh repo clone cli/cli
Cloning into 'cli'...
remote: Enumerating objects: 24951, done.
remote: Counting objects: 100% (2187/2187), done.
remote: Compressing objects: 100% (975/975), done.
remote: Total 24951 (delta 1387), reused 1871 (delta 1191), pack-reused 2276
Receiving objects: 100% (24951/24951), 21.62 MiB | 4.64 MiB/s, done.
Resolving deltas: 100% (16613/16613), done.

ghでクローンしても、gitでクローンしても複製される内容は変わりません。

GitHub Desktopでクローン

WindowsやMac環境のGUI、GitHub Desktopでクローンをおこないます。GitHub DesktopはPC環境でgit管理をおこなうのに便利なツールです。インストール方法は以下を参照してください。

【関連記事】
GitHub DesktopはWindows用Gitツール インストールと使い方の解説

リポジトリのページにて、Open with GitHub Desktopをクリックします。以下は、Windows 10で実行した例です。

「GitHubDesktop.exeを開きますか?」と表示されるので、「GitHubDesktop.exeを開く」ボタンをクリックします。

 

GitHub Desktopが起動し、リポジトリのクローンする画面が表示されます。Local path(クローン先のディレクトリ)を確認し、CloneをクリックするとPCにリポジトリが複製されます。

ZIPコードでクローン

PCやLinuxにgitコマンドなどをインストールしていない状態で、対象リポジトリのコードを見たい場合に有効です。ZIP形式で圧縮された状態でリポジトリの複製を取得できます。

リポジトリのページにて、Codeボタン→Download ZIPをクリックします。

 

Windowsの場合はダウンロードが実行されます。Linuxの場合はDownload ZIPの箇所で右クリック→リンクのアドレスをコピーしたあと、wgetコマンドでZIP形式でのリポジトリが取得できます。

$ wget https://github.com/cli/cli/archive/refs/heads/trunk.zip
--2021-07-23 01:44:10-- https://github.com/cli/cli/archive/refs/heads/trunk.zip
github.com (github.com) をDNSに問いあわせています... 52.192.72.89
github.com (github.com)|52.192.72.89|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://codeload.github.com/cli/cli/zip/refs/heads/trunk [続く]
--2021-07-23 01:44:10-- https://codeload.github.com/cli/cli/zip/refs/heads/trunk
codeload.github.com (codeload.github.com) をDNSに問いあわせています... 52.68.31.213
codeload.github.com (codeload.github.com)|52.68.31.213|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [application/zip]
`trunk.zip' に保存中

trunk.zip [ <=> ] 749.94K 2.82MB/s 時間 0.3s

2021-07-23 01:44:11 (2.82 MB/s) - `trunk.zip' へ保存終了 [767936]

lsで確認するとzipファイルがダウンロードされています。unzipで復元すると、各種ファイルが現れます。

$ ls
trunk.zip


$ unzip trunk.zip
Archive: trunk.zip
fa354a922b638863cb55ab310596414139c69a83
creating: cli-trunk/
extracting: cli-trunk/.gitattributes
creating: cli-trunk/.github/
 :
 :
$ cd cli-trunk/
$ ls
LICENSE README.md cmd docs go.mod internal script utils
Makefile api context git go.sum pkg test wix.json

まとめ

ポテパンダの一言メモ
  • githubのcloneは、リポジトリのCodeボタンに表示される文字列で実行可能
  • 通信の暗号化は、http やSSHが選択可能
  • GitHubのCLIやGitHub Desktop、ZIP形式でのクローンも可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。