GitHubのクローン(Clone)とは?使い方と失敗時の対処法を解説

情報管理・ナレッジ共有

Difyサーバーの設定ファイルを管理したり、プログラミング学習を進めたりする上で、GitHubは欠かせないツールです。そのGitHubを使い始める第一歩が「クローン (Clone)」です。

「クローンのコマンドは理解したけど、なぜかうまくいかない…」 「HTTPSとSSHって何が違うの?」

この記事では、GitHubの「クローン」機能の基本から、fork との違い、主要な通信方式、そしてクローンに失敗したときの対処法まで、初心者向けに詳しく解説します。

 

1. クローン (Clone) とは?

クローンとは、GitHub上にあるリモートリポジトリ(保管庫)を、そのまま自分のローカル環境(自分のPC上)へ複製(コピー)する機能です。

クローンを行うことで、初めて自分のPC上でコードを編集したり、Difyの設定ファイルを追加したりする作業を開始できます。

 

2. 「クローン (Clone)」と「フォーク (Fork)」の違い

初心者が混同しやすい機能に「フォーク (Fork)」があります。どちらも「複製」ですが、複製する場所が決定的に異なります。

  • クローン (Clone)
    • 場所: リモートリポジトリ(GitHub上) → ローカルリポジトリ(自分のPCへ)
    • 目的: 開発作業を自分のPCで開始するため。
  • フォーク (Fork)
    • 場所: 他人のリモートリポジトリ → 自分のリモートリポジトリ(GitHub上で完結
    • 目的: 他人が管理するプロジェクト(オープンソースなど)に貢献(プルリクエスト)する準備として、まず自分用のコピーをGitHub上に作るため。

一般的なオープンソース開発の流れ: 他人のリポジトリを フォーク (自分のGitHubへ) → 自分のリポジトリを クローン (自分のPCへ) → PCで編集 → プッシュ (自分のGitHubへ) → プルリクエスト (他人のリポジトリへ変更提案)

 

3. 通信方式の違い(HTTPS方式 vs SSH方式)

リポジトリをクローンする際、主に2つの通信方式(プロトコル)を選びます。

 

① HTTPS方式(推奨)

  • 特徴: GitHubが推奨している方式です。一般的なWebサイト閲覧と同じ https:// の通信を使うため、会社のファイアウォールなどにブロックされにくいのが特徴です。
  • 認証: クローンは誰でもできますが、push(変更をアップロード)する際にGitHubのユーザー名とパスワード(またはトークン)による認証が求められます。(PCに認証情報を保存すれば初回のみでOK)
  • URLの例: https://github.com/<ユーザー名>/<リポジトリ名>.git

 

② SSH方式

  • 特徴: 通信が暗号化され、安全性が高い方式です。
  • 認証: push 時にパスワード入力が不要になりますが、その代わりに「SSHキー」(公開鍵と秘密鍵)という認証用の鍵ペアを事前に作成し、自分のPCに「秘密鍵」を、GitHubアカウントに「公開鍵」を登録しておく必要があります。
  • URLの例: git@github.com:<ユーザー名>/<リポジトリ名>.git

 

どちらを選ぶべき?

  • 初心者の方、すぐ使いたい方: まずは HTTPS方式 をお勧めします。
  • Difyサーバー運用など本格的に使う方: 初期設定は少し手間ですが、パスワード入力が不要になる SSH方式 が最終的には便利です。

(※ git:// 方式は認証機能がなくセキュリティが担保されないため、現在では非推奨です)

 

4. リモートリポジトリのクローン方法

基本コマンド

どの方式でも、基本となるコマンドは同じです。

# 基本形
git clone <リポジトリのアドレス>

# 保存するフォルダ名を指定する場合
git clone <リポジトリのアドレス> <ディレクトリ名>

<ディレクトリ名> を省略すると、今いるディレクトリ(フォルダ)の中に、リポジトリ名と同じ名前のディレクトリが自動的に作成され、その中にファイルがクローンされます。

 

リポジトリのアドレスを取得する方法

  1. クローンしたいGitHubのリポジトリページを開きます。
  2. 緑色の「Code」ボタンをクリックします。
  3. HTTPS」または「SSH」のタブを選び、表示されたURLの右にあるコピーアイコンをクリックします。

 

実行例 (HTTPS方式)

# ターミナル(Git Bashなど)で、クローンしたい場所(例: デスクトップ)に移動
cd Desktop

# GitHubからコピーしたHTTPSのURLを使ってクローンを実行
git clone 
https://github.com/dify-ai/dify.git
(https://github.com/dify-ai/dify.git) # 実行結果 # Cloning into 'dify'... # remote: Enumerating objects: ... done. # remote: Counting objects: ... done. # remote: Compressing objects: ... done. # remote: Total ... (delta ...), reused ... (delta ...), pack-reused ... # Receiving objects: ... done. # Resolving deltas: ... done. # これでデスクトップに 'dify' というフォルダが作成され、中身が複製されます

 

5. 特定のブランチを指定してクローンする方法

通常、クローンはデフォルトブランチ(mainmaster)のみをローカルにコピーしますが、-b オプションを使うと特定のブランチを指定してクローンできます。

# "develop" ブランチを指定してクローンする例
git clone -b develop 
https://github.com/dify-ai/dify.git
(https://github.com/dify-ai/dify.git)

 

6. クローンができない場合(トラブルシューティング)

クローンがうまくいかない場合、慌てずに以下を確認してください。

 

① 共通の確認事項

  • リポジトリのアドレスが間違っていませんか?
    • GitHubの「Code」ボタンからコピーしたURLが正しいか、貼り付けミスがないか再確認してください。
    • 非公開(Private)リポジトリをクローンしようとしていませんか?(その場合、認証や権限が必要です)

 

② SSH方式でクローンできない場合 (最頻出)

SSH方式でエラーが出る(Permission denied など)場合、ほぼ全ての原因は「SSHキーが正しく設定されていない」ことです。

以下の手順で、SSHキーペアを作成し、GitHubに公開鍵を登録してください。

 

ステップ1: SSHキーペアの作成

(もし ~/.ssh/id_rsa.pub が既に存在する場合は、ステップ2へ)

  1. ターミナル(Git Bash)を開きます。
  2. 以下のコマンドを実行し、キーペア(id_rsa:秘密鍵、id_rsa.pub:公開鍵)を作成します。
    # メールアドレスはご自身のものに変更してください
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  3. 「Enter file in which to save the key…」と聞かれますが、そのままエンターキーを押します。(~/.ssh/ ディレクトリに保存されます)
  4. 「Enter passphrase…」と聞かれますが、設定が面倒な場合はそのままエンターキーを2回押します。(パスフレーズなしで作成されます)

 

ステップ2: GitHubに公開鍵を登録

  1. 作成した「公開鍵(id_rsa.pub)」の中身をクリップボードにコピーします。
    # Mac の場合
    pbcopy < ~/.ssh/id_rsa.pub
    
    # Windows (Git Bash) の場合
    clip < ~/.ssh/id_rsa.pub
    
    # 上記がうまく行かない場合 (catで表示して手動コピー)
    cat ~/.ssh/id_rsa.pub
    # ssh-rsa AAAAB3NzaC1yc2EAAA... という文字列を全てコピー
    

コメント

error: Content is protected !!