LESSON 30分

ストーリー

先輩
コミットができるようになったね。次はリモートリポジトリを使ってみよう
あなた
リモートリポジトリ?ローカルと違うんですか?
先輩
うん。ローカルは自分のPCだけだけど、リモートはインターネット上にあるんだ。チームで共有したり、バックアップにもなるよ

ローカルとリモートの違い

ローカルリポジトリ

  • 自分のPCの中にある
  • 自分だけがアクセスできる
  • PCが壊れたらデータも消える

リモートリポジトリ

  • インターネット上のサーバーにある
  • URLを知っていればどこからでもアクセスできる
  • PCが壊れてもデータは残る

図で理解しよう

graph LR
    subgraph YourPC["あなたのPC"]
        Local["ローカル<br/>リポジトリ"]
    end
    subgraph Server["サーバー(GitHub等)"]
        Remote["リモート<br/>リポジトリ"]
    end

    Local <-->|"インターネット"| Remote

    style YourPC fill:#d1fae5,stroke:#059669,stroke-width:2px,color:#064e3b
    style Server fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
    style Local fill:#f0fdf4,stroke:#16a34a,color:#14532d
    style Remote fill:#e0e7ff,stroke:#4f46e5,color:#312e81

なぜリモートが必要なのか

1. バックアップ

自分のPC    →    GitHub
(壊れても)        (データは残る)

PCが壊れても、盗まれても、リモートにデータがあれば復旧できます。

2. チームでの共有

田中さん    →    GitHub    ←    佐藤さん
  push           共有           pull

チームメンバー全員が同じコードにアクセスできます。

3. どこからでもアクセス

会社のPC    →    GitHub    ←    自宅のPC
            どこからでも同じコード

場所を選ばず作業を継続できます。

4. 履歴の保存

リモートにpushしておけば、ローカルでミスしても戻れます。


代表的なリモートサービス

サービス特徴料金
GitHub最も人気、オープンソースの中心基本無料
GitLabCI/CD機能が充実基本無料
BitbucketAtlassian製品との連携基本無料
Azure DevOpsMicrosoft製品との連携基本無料

今回はGitHubを使います。最も広く使われているサービスです。


GitHubの基本用語

用語意味
Repositoryプロジェクトの保管場所
Pushローカル → リモートにアップロード
Pullリモート → ローカルにダウンロード
Cloneリモートをコピーしてローカルに作成
Fork他人のリポジトリを自分のアカウントにコピー

pushとpullのイメージ

Push(アップロード)

graph LR
    subgraph LocalPush["ローカル"]
        L1["commit"]
        L2["commit"]
        L3["commit"]
    end
    subgraph RemotePush["リモート (GitHub)"]
        R1["commit"]
        R2["commit"]
        R3["commit"]
    end

    LocalPush -->|"git push"| RemotePush

    style LocalPush fill:#d1fae5,stroke:#059669,stroke-width:2px,color:#064e3b
    style RemotePush fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af

自分の変更をリモートに送信します。

Pull(ダウンロード)

graph RL
    subgraph RemotePull["リモート (GitHub)"]
        R4["commit"]
        R5["commit"]
        R6["commit"]
        R7["(新)"]
    end
    subgraph LocalPull["ローカル"]
        L4["commit"]
        L5["commit"]
        L6["commit"]
        L7["(新)"]
    end

    RemotePull -->|"git pull"| LocalPull

    style LocalPull fill:#d1fae5,stroke:#059669,stroke-width:2px,color:#064e3b
    style RemotePull fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af

他の人の変更をリモートから受信します。


一般的なワークフロー

1. 朝: git pull(最新を取得)

2. 作業: コードを書く

3. 保存: git add → git commit

4. 共有: git push(変更を送信)

5. 繰り返し...

リモートの仕組み

originとは

リモートリポジトリには名前をつけます。デフォルトは origin です。

git remote add origin https://github.com/username/repo.git
  • origin = リモートの名前(慣習的にこの名前を使う)
  • URL = リモートリポジトリの場所

複数のリモート(応用)

実は複数のリモートを登録できます:

origin  → メインのリモート(GitHub)
backup  → バックアップ用(別のサービス)

今は「origin」だけ覚えておけばOKです。


セキュリティについて

公開(Public)リポジトリ

  • 誰でも見れる
  • 誰でもクローン(コピー)できる
  • オープンソースプロジェクトに使う

非公開(Private)リポジトリ

  • 招待された人だけがアクセスできる
  • 企業のプロジェクトに使う
  • GitHubは無料で無制限のプライベートリポジトリを作成可能

よくある質問

Q: リモートにpushしないとどうなる?

A: ローカルにだけ変更が残ります。他の人には共有されず、バックアップにもなりません。

Q: pushを忘れて帰宅したら?

A: 自宅からその変更にアクセスできません。pushは忘れずに!

Q: リモートが消えたらどうなる?

A: ローカルにコードがあれば復旧できます。逆も同様です。


まとめ

ポイント内容
ローカルリポジトリ自分のPCにある
リモートリポジトリインターネット上にある
Pushローカル → リモート
Pullリモート → ローカル
代表的サービスGitHub, GitLab, Bitbucket

チェックリスト

  • ローカルとリモートの違いを説明できる
  • なぜリモートが必要か説明できる
  • PushとPullの違いを説明できる

次のステップへ

リモートリポジトリの概念は理解できましたか?

次のセクションでは、実際にGitHubアカウントを作成します。すでにアカウントを持っている場合は、次のセクションを読み飛ばしてもOKです。


推定読了時間: 30分