採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

GitHub と繋ぐ

テクノロジ系 / remote — リモートリポジトリ連携

GitHub と繋ぐ

— ローカルの履歴をクラウドに送る —

このトピックが終わると

  • ローカルリポジトリと GitHub を紐付けられる
  • git push でコードを GitHub に送れる
  • git pull で GitHub の変更を取り込める
  • git clone で既存リポジトリを手元に複製できる

章 1 — ローカルとリモート

2つのリポジトリが存在する

┌────────────────────┐        ┌────────────────────┐
│  ローカル           │        │  リモート(GitHub) │
│                    │        │                    │
│  .git/ に履歴      │◄──────►│  クラウドに履歴     │
│  自分の PC         │        │  チームと共有       │
│                    │  同期  │                    │
└────────────────────┘        └────────────────────┘

ローカルで commit → リモートに push が基本の流れ。

リモートとは

# 登録されているリモートを確認
git remote -v
origin  git@github.com:username/my-project.git (fetch)
origin  git@github.com:username/my-project.git (push)

origin = リモートリポジトリの別名

慣習的に最初のリモートは origin と呼ぶ。

章 2 — GitHub にリポジトリを作って繋ぐ

手順の全体像

1. GitHub でリポジトリを作成(Web)
         ↓
2. ローカルに remote を登録
         ↓
3. push して同期

GitHub でリポジトリを作成

  1. github.com にログイン
  2. 右上「+」→「New repository」
  3. Repository name を入力
  4. 「Initialize this repository」のチェックは外す

(ローカルに既に履歴があるため)

  1. 「Create repository」をクリック

リモートを登録して push

# リモートを登録
git remote add origin git@github.com:username/my-project.git

# 最初の push(-u でデフォルトのリモートを記憶)
git push -u origin main

以降は git push だけで OK。

章 3 — push と pull

push:ローカル → リモート

ローカル  ──push──→  GitHub
  commits              commits(同期)
git push

commit していない変更は push されない。

push の前に commit が必要。

pull:リモート → ローカル

GitHub  ──pull──→  ローカル
  commits              commits(同期)
git pull

チームメンバーの変更を取り込む時に使う。

作業前に pull する習慣をつける。

よくあるエラー:push が拒否される

! [rejected]  main -> main (non-fast-forward)

原因: リモートの方がローカルより進んでいる。

# まず pull して最新を取り込む
git pull

# 競合がなければそのまま push できる
git push

fetch と pull の違い

git fetch  ──→  リモートの情報を取得するだけ(ローカルは変わらない)
git pull   ──→  fetch + merge(取得して、すぐ統合する)
# fetch: 確認してから手動でマージ
git fetch
git diff main origin/main  # 差分を確認
git merge origin/main      # 問題なければマージ

# pull: 取得 + マージを一発でやる
git pull

fetch を使う場面

チームメンバーが push した
  ↓
git fetch
  ↓
git diff main origin/main  ← 「何が変わったか」を確認してから
  ↓
git merge origin/main      ← 問題なければ統合

変更内容を先に確認したい時は fetch

慣れてきたら状況に応じて使い分ける。

章 4 — clone

clone:リモートをローカルに複製

GitHub  ──clone──→  ローカル
  リポジトリ全体      履歴ごとコピー
git clone git@github.com:username/my-project.git
  • 履歴が全て手元に来る
  • remote add は不要(自動で origin が設定される)
  • チームに参加するときや、自分の別 PC で作業するときに使う

まとめ

git remote add    リモートを登録
git push          ローカル → GitHub に送る
git pull          GitHub → ローカルに取り込む
git clone         リモート全体を複製する

→ 次のトピック branch で並行作業を安全にする