Stage 1・初心者編 ー Lesson 1-6

リモートと連携しよう — git push と git pull

git remote add でリモートと紐付け、git push / git pull でコミットを送受信する

💡 たとえるなら

スマホの写真をクラウドにアップロードして共有するように、コミット履歴をネット上のリモートに保管します

ここまではすべて 自分のパソコンの中だけ で完結していました。最後に、コミット履歴を ネット上のリモートリポジトリ に保存する方法を学びます。これでパソコンが壊れても安心、しかも他のパソコンやチームと共有できるようになります。

リモートリポジトリってなに?

「Gitリポジトリを置いておけるサーバー上の場所」のことを リモート(リポジトリ) と呼びます。GitHub・GitLab・Bitbucket・社内のGitサーバー、すべてリモートの一例です。仕組みはどれも同じで、Gitコマンドからは「URL」で指定するだけ。

⚠️ ローカルだけ
💻 パソコンが壊れたら消える
🏠 1台のパソコンでしか作業できない
👤 チームと共有できない
✅ リモートあり
☁️ ネット上に安全バックアップ
🌍 どのパソコンからでもアクセス可
👥 チームで共同作業できる

ローカル ↔ リモートの仕組み

自分のパソコン ローカルリポジトリ [v1] [v2] [v3] 手元のデータ git push ↑ アップロード git pull ↓ ダウンロード リモート サーバー上のリポジトリ [v1] [v2] [v3] どこからでもアクセス可

インターネット経由でバックアップ・共有できる!

リモートとの付き合い方には 2つの始まり方 があります:

A. 自分のローカルから始める
手元の my_project をリモートに上げる。
登録 → push → pull のステップ①〜④
B. 他人のリモートから始める
既にあるリモートを丸ごと取得して開発スタート。
git clone 一発(後半セクション)

順に見ていきます。


A. 自分のローカルから始める(push / pull)

すでに手元に my_project がある前提で、これをリモートに上げて運用するパターン。

ステップ① リモートを用意する

リモートを置けるサービスはいろいろあります:

  • GitHub — 世界で一番使われている。個人の学習用にも最適(このレッスン末尾のコラム参照)
  • GitLab — 自社サーバーに立てやすい。企業導入も多い
  • Bitbucket — Atlassian製。Jiraと連携が強い
  • 自社のGitサーバー — sshアクセスできるサーバーがあれば自分でも立てられる

どれを使っても、Git本体から見れば「URLで指す場所」というだけ。やり方は同じです。

このレッスンでは、リモートを用意できた前提で進めます。手元には次のような リポジトリのURL が手に入っているはずです:

https://github.com/yourname/my_project.git
git@gitlab.example.com:yourname/my_project.git

ステップ② リモートを登録する:git remote add

ターミナルで my_project フォルダの中に入って、次のコマンドを打ちます。URL は自分のものに置き換えてください。

$ git remote add origin https://example.com/yourname/my_project.git
# ちゃんと登録できたか確認
$ git remote -v
origin https://example.com/yourname/my_project.git (fetch)
origin https://example.com/yourname/my_project.git (push)
  • origin = リモートのニックネーム(慣習で origin を使う)
  • URL = リモートリポジトリのアドレス

ステップ③ ネットに送る:git push

いよいよコミット履歴をリモートに送ります。

$ git push -u origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (5/5), 512 bytes, done.
Branch 'main' set up to track remote branch 'main' from 'origin'.
  • -u = 「次回からは git push だけで送れるようにする」おまじない(最初の1回だけ)
  • origin main = 「origin というリモートの main ブランチに送る」

成功したら、ブラウザでリモートのリポジトリページを再読み込みしてみてください。memo.txt とコミット履歴が表示されているはずです。

ステップ④ ネットから取り込む:git pull

別のパソコンや他のメンバーがリモートに変更を加えたら、git pull でそれを自分の手元に取り込みます。

$ git pull origin main
Already up to date.

「Already up to date.」は「もう最新だよ」という意味。誰も新しい変更を加えていなければこう出ます。


B. 他人のリモートから始める(git clone)

ここからは 完全に別の話。すでに誰かが用意したリモート(OSSプロジェクト、チームのリポジトリなど)から 手元に持ってきて開発をスタートする パターンです。Aの「git init + remote add + pull」を全部まとめて1コマンドにしたのが git clone

git clone:リモートを丸ごと取得

git init ではなく git clone で始めます。リモートの中身を丸ごとダウンロードして、ローカルリポジトリとして使える状態にしてくれます。

$ git clone https://example.com/yourname/my_project.git
Cloning into 'my_project'...
$ cd my_project

git clone新しいフォルダを作って、そこに git init + git remote add origin URL + git pull を全部まとめてやってくれる イメージ。チームに参加するときの最初の一歩です。

clone できる ≠ push できる

ここがハマりどころ。clone(読み取り)と push(書き込み)は権限が別 です。

📖 clone(読み取り)
公開リポジトリなら **誰でも可能**。OSSプロジェクトを clone して手元で動かすのに権限は要りません。
非公開リポジトリは「メンバーに招待されている」など、読み取り権限が必要です。
✏️ push(書き込み)
リポジトリの所有者か、招待されたコラボレーターでないと拒否されます。権限がないと:
remote: Permission to xxx/repo.git denied to user.
fatal: unable to access ...: The requested URL returned error: 403

他人のOSSに貢献したいときは「fork」

OSSプロジェクトに改善を提案したい場合、本家には push 権限が無いので 「fork」 という仕組みを使います:

1. GitHub などで本家リポジトリを 「Fork」(自分のアカウント配下にコピーを作る)
2. 自分の fork を git clone
3. 修正してコミット → 自分の fork に git push(自分のだから push できる)
4. 本家へ 「Pull Request」 を送って、取り込みをお願いする

fork や Pull Request は GitHub特有の仕組み で、Git本体の機能ではありません。詳しくは GitHub のドキュメントを参照してください。

衝突(コンフリクト)が起きたら

ローカルとリモートの両方で 同じファイルの同じ行 を別々に編集していると、Gitは「どっちを採用すればいいか分からない」と困ります。これが 衝突(コンフリクト) です。怖そうな名前ですが、Gitが勝手に上書きしないように立ち止まってくれているだけです。

よくある2つのパターン

① push が拒否される
リモート側に自分が知らないコミットがあると、git push は失敗します。
→ まず git pull で取り込んでから、もう一度 push します。
② pull で衝突する
ローカルとリモートが同じ場所を変更していると、git pull が止まります。
→ ファイルを手で直して、add + commit で解決します。

衝突したときのターミナル表示

$ git pull origin main
CONFLICT (content): Merge conflict in memo.txt
Automatic merge failed; fix conflicts and then commit the result.

CONFLICT の文字を見たら、衝突したファイル(この例では memo.txt)を開いてみましょう。Gitが両方の変更をマーカーで囲んで残してくれています。

普通の行はそのまま
<<<<<<< HEAD
こちらは自分のローカルの変更
=======
こちらはリモート側の変更
>>>>>>> origin/main
普通の行はそのまま
  • <<<<<<< HEAD から ======= までが 自分側の変更
  • ======= から >>>>>>> origin/main までが リモート側の変更

解決の手順

1. ファイルを開いて、どちらを残すか/両方をどう混ぜるか を自分で決める
2. <<<<<<< ======= >>>>>>>マーカー行も忘れずに削除
3. git add <ファイル名> でステージング
4. git commit で「衝突を解決した」コミットを作る
5. もう一度 git push でリモートに送る

衝突解決の細かいテクニックは Stage 2-3「コンフリクトを解決する」 で深掘りします。今は「マーカーを直して add + commit する」だけ覚えておけばOKです。

コマンド早見表

コマンド 何をする?
git remote add origin URL リモートを登録する
git remote -v 登録済みリモート一覧を表示
git push -u origin main ローカル→リモートへ送る
git pull origin main リモート→ローカルへ取り込む
git clone URL リモートを丸ごと取得して始める

このレッスンのまとめ

できるようになったこと
リモートリポジトリ の役割がわかった(GitHubなどはその一例)
git remote add でリモートを登録できる
git push でローカルの変更をリモートに送れる
git pull でリモートの変更を取り込める
git clone で他人のリモートから始められる
✅ 衝突(コンフリクト)の対処の入口を覚えた

🎉 Stage 1 完走おめでとうございます!

これでGitの基本フローはマスターです 🚀
1人でコミットしてリモートに送るところまで、すべてできるようになりました。
次の Stage 2 — 中級編 では、ブランチ を切って機能ごとに作業を分け、間違いを安全に取り消す技術を身につけていきます。

📌 コラム:GitHubで試してみよう

「とりあえず手を動かしてみたい」という方は、GitHub を使うのが一番手っ取り早いです。無料、登録もすぐ、ググったときの情報量も世界一。

最短手順:

  1. github.com にアクセス → アカウント作成
  2. ログイン後、右上の 「+」 → 「New repository」
  3. Repository name を入力(例:my_project
  4. Public / Private を選ぶ(学習用なら Private が安心)
  5. 「Add a README」などのチェックは付けない(空のリポジトリで作る)
  6. 「Create repository」 をクリック
  7. 表示された https://github.com/yourname/my_project.git のような URL をコピー
  8. ターミナルに戻って git remote add origin <そのURL>git push -u origin main
⚠️ 「Add a README」を付けると衝突します
GitHub側にすでにファイルがあると、ローカルとぶつかってpushが拒否されます。最初は必ず「空のリポジトリ」で作ってください。

GitHub には Pull Request・Issues・Actions などGit本体の枠を超えた機能が山ほどありますが、それらは このサイトの範囲外。GitHub単体の使い方は別のドキュメントを参照してください。

✏️ 理解度チェック

0 / 3 正解

各問題、選んだ瞬間に正解と解説が表示されます。気軽に試してください。

  1. Q1. リモートリポジトリのURLをローカルに登録するコマンドは?
  2. Q2. ローカルのコミットをリモートに送るコマンドは?
  3. Q3. リモートの最新変更を取り込むコマンドは?

© 2026 git-ready-easy — プログラミング未経験でもわかる git 入門