GitHubのリポジトリをcloneしてローカルで開く|remote・origin・mainの関係を理解する

「GitHubのリポジトリをcloneしてローカルで開く|remote・origin・mainの関係を理解する」の内容を表す技術イラスト

GitとGitHubを使い始めると、最初につまずきやすいのが、

「GitHubにあるファイルと、自分のPCにあるファイルはどういう関係なのか」

という点です。

GitHubの画面でリポジトリを作っただけでは、そのファイルを自分のPC上で編集できる状態にはなっていません。

そこで使うのが、

git clone

です。

今回はGitHub上のリポジトリをPCへ取得し、VS Codeで編集できる状態にするところまで進めます。

add、commit、pushの前に、まず「どこで作業しているのか」を理解しておきます。


目次

GitHub上のリポジトリとPC上のリポジトリ

Gitを使うときには、大きく2つの場所があります。

場所呼び方役割
自分のPCローカルリポジトリ実際に編集・記録する場所
GitHubリモートリポジトリネット上で共有・保管する場所

イメージすると、

自分のPC
ローカルリポジトリ

        ↑ ↓

GitHub
リモートリポジトリ

という関係です。

普段のプログラム編集は、基本的にPC側で行います。

GitHubのファイルを直接編集し続けるのではなく、

  1. GitHubからPCへ取得する
  2. PCで編集する
  3. Gitで変更を記録する
  4. GitHubへ反映する

という流れになります。


cloneとは何か

cloneは、GitHubなどにある既存のGitリポジトリを自分のPCへ複製する操作です。

基本形は次のとおりです。

git clone https://github.com/USER/REPOSITORY.git

たとえば、

git clone https://github.com/example/sample-project.git

と実行すると、現在いるフォルダの中に、

sample-project

というフォルダが作成されます。

ただファイルをコピーしているだけではありません。

Gitの履歴やブランチなど、Gitリポジトリとして必要な情報も一緒に取得されます。


ZIPダウンロードとcloneは違う

GitHubには「Download ZIP」もあります。

しかし、Gitを使って開発するならcloneを使う方が基本です。

ZIPでダウンロードすると、主に現在のファイルを取得します。

一方でgit cloneでは、

ファイル
+
コミット履歴
+
ブランチ情報
+
リモートとの接続情報

を含んだGitリポジトリとして取得できます。

つまり、

ZIP
= ファイルを取得する

clone
= Gitの作業環境を取得する

と考えると分かりやすくなります。


実際にcloneする

まずGitHubで対象リポジトリを開きます。

画面上部の「Code」からHTTPSのURLをコピーします。

例:

https://github.com/USER/REPOSITORY.git

次にターミナルを開きます。

リポジトリを置きたい親フォルダへ移動します。

Windowsなら、たとえば、

cd C:\Users\USER\projects

のように移動します。

現在位置を確認したら、

git clone https://github.com/USER/REPOSITORY.git

を実行します。

成功すると、

projects
└─ REPOSITORY

のようにフォルダが作成されます。


cloneしたリポジトリへ移動する

続いて、

cd REPOSITORY

で作成されたフォルダへ移動します。

ここで重要なのは、

Gitコマンドは基本的に対象リポジトリの中で実行する

ということです。

たとえば、

git status

を実行します。

正常なら、現在のブランチや変更状態が表示されます。

例:

On branch main
nothing to commit, working tree clean

これは、

現在のブランチ:main
変更されたファイル:なし

という状態です。


VS Codeで開く

VS Codeを使っている場合は、リポジトリのフォルダ内で、

code .

を実行すると、そのフォルダをVS Codeで開けます。

GitHub
   ↓ clone
PC
   ↓
repository folder
   ↓
VS Code

ここまでできれば、GitHub上のプロジェクトを自分のPCで編集する準備は完了です。


originとは何か

cloneしたあと、

git remote -v

を実行してみます。

たとえば、

origin  https://github.com/USER/REPOSITORY.git (fetch)
origin  https://github.com/USER/REPOSITORY.git (push)

のように表示されます。

ここに出てくるoriginは非常に重要です。

originは、

このローカルリポジトリから見た、元のリモートリポジトリにつけられた名前

です。

つまり、

origin
    ↓
https://github.com/USER/REPOSITORY.git

という対応関係があります。

originという名前自体がGitHubを意味するわけではありません。

リモートリポジトリにつけられた名前です。

ただし、git cloneした場合は通常、取得元のリモートがoriginとして登録されます。


mainとは何か

もう一つ頻繁に出てくるのが、

main

です。

mainは多くのリポジトリで中心となるブランチ名として使われます。

確認するには、

git branch --show-current

を実行します。

結果が、

main

なら、現在mainブランチ上にいるという意味です。

この段階では、

origin
= GitHub側のリポジトリとの接続先

main
= 現在扱っている中心ブランチ

程度に理解しておけば十分です。

ブランチそのものは後で詳しく扱います。


cloneすると何が自動設定されるのか

通常のgit cloneでは、かなり多くの設定が自動的に行われます。

概念的には、

GitHub repository
        ↓
     git clone
        ↓
ローカルrepository作成
        ↓
ファイル取得
        ↓
履歴取得
        ↓
remote設定
        ↓
origin設定
        ↓
作業用branchをcheckout

という処理が行われます。

そのため、clone後すぐにGitリポジトリとして作業を始められます。


まず確認したい3つのコマンド

cloneした直後は、次の3つを確認すると現在の状態を把握しやすくなります。

現在の状態

git status

接続先

git remote -v

現在のブランチ

git branch --show-current

まとめると、

git status
→ 今どうなっているか

git remote -v
→ どのリモートにつながっているか

git branch --show-current
→ どのブランチにいるか

です。

この3つは、今後Git操作で迷ったときにも役立ちます。


「どこにある変更なのか」を意識する

Gitを理解するときは、コマンドそのものよりも、

今見ているものがどこに存在しているのか

を意識すると理解しやすくなります。

clone直後は、

GitHub
  │
  │ git clone
  ↓
PC
┌────────────────┐
│ ローカルrepository │
└────────────────┘

という状態です。

ここからファイルを編集すると、変更はまずPC上にだけ存在します。

まだGitHubには反映されません。

この、

PCでは変更済み
GitHubでは未変更

という状態をGitで管理していきます。

そのための操作が、次の記事で扱う、

git add
git commit
git push

です。


cloneとpullの違い

cloneとpullも混同しやすい操作です。

clone

git clone URL

まだPC上に存在しないリポジトリを、最初に取得するときに使います。

pull

git pull

すでにPC上にあるリポジトリへ、リモート側の新しい変更を取得するときに使います。

つまり、

初回
GitHub → PC
git clone

2回目以降
GitHub → 既存のPC repository
git pull

という違いです。


よくある勘違い

GitHubのリポジトリ=PCのフォルダではない

GitHubとPCは別の場所です。

cloneすることで両者の対応関係を持ったローカルリポジトリを作ります。

clone後にファイルを編集してもGitHubは変わらない

PCでファイルを保存しただけではGitHubには反映されません。

変更をGitHubへ反映するには、さらにGitの操作が必要です。

originはGitHubそのものではない

originはリモートリポジトリにつけられた名前です。

一般的なcloneでは取得元がoriginになります。

cloneは単なるコピーではない

Gitの履歴やリモート設定も含んだ、Gitリポジトリとして複製されます。


覚えておくこと

今回覚える内容は多くありません。

最低限、次の5つで十分です。

用語・コマンド意味
local repository自分のPC上のGitリポジトリ
remote repositoryGitHubなどにあるリポジトリ
git cloneリポジトリをPCへ複製する
originリモートリポジトリにつけられる代表的な名前
main中心となるブランチによく使われる名前

そして状態確認として、

git status
git remote -v
git branch --show-current

を使えるようにしておきます。


実習

GitHub上にある既存リポジトリを1つ使って、次の操作を行います。

cd C:\Users\USER\projects

git clone https://github.com/USER/REPOSITORY.git

cd REPOSITORY

git status

git remote -v

git branch --show-current

code .

次の状態になればこの記事の内容は完了です。

  • GitHubのリポジトリをPCへcloneできた
  • cloneされたフォルダへ移動できた
  • git statusが正常に実行できた
  • originのURLを確認できた
  • 現在のブランチを確認できた
  • VS Codeでリポジトリを開けた

まとめ

GitHubを使った開発では、

GitHub
= リモートリポジトリ

自分のPC
= ローカルリポジトリ

という2つの場所を意識することが重要です。

既存のGitHubリポジトリから作業を始めるときは、

git clone URL

でPCへ取得します。

clone後は、

git status
git remote -v
git branch --show-current

を確認すると、現在の状態が分かります。

ここまで理解できれば、GitHub上のプロジェクトを自分のPCで扱う準備は完了です。

次は、ファイルを実際に変更し、

変更
↓
add
↓
commit
↓
push
↓
GitHub

というGitの基本操作へ進みます。

参考になったらシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

機械設計・油圧・CAD・Python・AIなど、ものづくりに関わる技術を扱っています。工学知識を整理・構造化し、設計や自動化に再利用できる形へ変えていくことを目指しています。

目次