Skip to main content

GitHubとリモート操作

この章で得られるスキル:

  • ✅ GitHubの役割を説明できる
  • ✅ GitHubアカウントを作成し、リポジトリを作成できる
  • ✅ HTTPS + Personal Access Token でGitHub接続を設定できる
  • git push でローカルの変更をリモートに送れる
  • git pull でリモートの変更をローカルに取り込める
  • git clone で既存リポジトリをコピーできる

Step 0: まず体験してみよう

シナリオ:PCが壊れたらコードが全部消える

第2章まで、ローカルのPC上でGitを使ってきた。 しかし、コードと履歴は自分のPCの中にしか存在しない。

もしPCが壊れたら? → これまで書いたコードも、コミット履歴も、すべて失われてしまう。

USBメモリにバックアップする? → 「どっちが最新?」問題が再び発生する。

重要

ローカルだけでGitを使っている限り、PCの故障やディスクの破損でコードを失うリスクがある。 コードをインターネット上の安全な場所にも保存しておく必要がある。

GitHub を使えば、コードと履歴をクラウドに安全に保存できる。 さらに、チームメンバーとコードを共有することもできる。


Step 1: GitHubとは

リモートリポジトリのホスティングサービス

GitHub(ギットハブ) は、Gitのリポジトリをインターネット上で管理・共有するためのWebサービスである。

前の章で学んだ、自分のPC上にあるリポジトリを ローカルリポジトリ と呼ぶ。 一方、GitHub上にあるリポジトリを リモートリポジトリ と呼ぶ。

GitHubを使う理由

目的説明
バックアップPCが壊れてもコードが失われない
どこからでもアクセス自宅でも学校でも同じプロジェクトにアクセスできる
チーム開発複数人でコードを共有・統合できる
コードレビューPull Requestで変更内容をチームで確認できる(第6章で学ぶ)
補足

GitHub以外にも GitLabBitbucket など、同様のサービスがある。 基本的な使い方は共通しているので、GitHubで学んだ知識は他のサービスにも応用できる。 このブートキャンプではGitHubを使用する。


Step 2: GitHubアカウント作成とリポジトリ作成

GitHubアカウントの作成

  1. https://github.com にアクセスする
  2. 「Sign up」をクリックする
  3. メールアドレス、パスワード、ユーザー名を入力する
  4. メール認証を完了する
ポイント

ユーザー名は今後ずっと使うものである。本名のローマ字表記や、短く覚えやすい名前がおすすめである。 就職活動でGitHubアカウントを見られることもあるため、ふざけた名前は避けよう。

リポジトリの作成(GitHub上の操作)

  1. GitHubにログインし、右上の「+」ボタン → 「New repository」をクリック
  2. 以下の設定を入力する
項目設定
Repository namehello-git(プロジェクト名)
DescriptionGit学習用のリポジトリ(任意)
Public / PrivatePrivate(個人練習なのでPrivateでよい)
Initialize this repositoryチェックしない(ローカルに既にリポジトリがあるため)
  1. 「Create repository」をクリック

作成後、画面にリポジトリのURL(https://github.com/ユーザー名/hello-git.git)が表示される。 このURLは次のステップで使う。


Step 3: HTTPS接続の設定(Personal Access Token)

なぜ認証が必要か

GitHubにコードを送る(push)には、「自分がこのリポジトリの持ち主である」ことを証明する必要がある。 誰でもpushできたら、他人のリポジトリを勝手に書き換えられてしまう。

この認証に使うのが Personal Access Token(パーソナルアクセストークン、通称PAT) である。

Personal Access Token の作成手順

  1. GitHubにログインした状態で、右上のアイコン → Settings をクリック
  2. 左メニューの一番下にある Developer settings をクリック
  3. Personal access tokensTokens (classic) をクリック
  4. Generate new tokenGenerate new token (classic) をクリック
  5. 以下を設定する
項目設定
Notebootcamp(何に使うトークンか分かるメモ)
Expiration90 days(有効期限)
Select scopesrepo にチェックを入れる
  1. 「Generate token」をクリック
  2. 表示されたトークン(ghp_ で始まる文字列)を コピーして安全な場所に保存 する
重要

トークンはこの画面を閉じると 二度と表示されない 。 必ずコピーして、パスワードマネージャーやメモ帳に保存しておくこと。 もし忘れた場合は、新しいトークンを作成し直す。

注意

トークンはパスワードと同じもの である。

  • ソースコードの中に書かない
  • 他の人に教えない
  • GitHubの公開リポジトリにアップロードしない

Step 4: git push — ローカルの変更をリモートに送る

リモートリポジトリの登録

まず、ローカルリポジトリに「どのGitHubリポジトリと連携するか」を教える。

git remote add origin https://github.com/ユーザー名/hello-git.git
  • origin はリモートリポジトリに付ける名前(慣習的に origin を使う)
  • URLはGitHubでリポジトリを作成したときに表示されたもの

登録できたか確認するには、以下のコマンドを実行する。

git remote -v

出力例:

origin  https://github.com/taro-tanaka/hello-git.git (fetch)
origin https://github.com/taro-tanaka/hello-git.git (push)

最初のプッシュ

git push -u origin main

初回実行時にユーザー名とパスワードを聞かれる。

  • Username: GitHubのユーザー名
  • Password: Step 3で作成した Personal Access Token (GitHubのパスワードではない)
重要

パスワード欄には、GitHubのログインパスワードではなく、 Personal Access Token を入力する。 GitHubはセキュリティ上の理由から、パスワードによるHTTPS認証を廃止している。

-u オプションは「上流ブランチの設定」を意味する。 これにより、次回以降は git push だけでプッシュできるようになる。

2回目以降のプッシュ

# ファイルを編集 → add → commit した後
git push

-u origin main は最初の1回だけでよい。

GitHubで確認

プッシュ後、ブラウザでGitHubのリポジトリページを開くと、ファイルとコミット履歴が表示される。


Step 5: git pull — リモートの変更をローカルに取り込む

git pull とは

git pull は、リモートリポジトリの最新の変更をローカルに取り込むコマンドである。

git pull origin main

上流ブランチを設定済みであれば、以下だけでよい。

git pull

いつ git pull するか

タイミング理由
作業開始前他のメンバーが変更をプッシュしている可能性があるため
プッシュ前リモートに自分の知らない変更がある場合、プッシュが拒否されるため
ポイント

チーム開発では、 毎朝の作業開始時に git pull する 習慣をつけよう。 リモートの最新状態を取り込んでから作業を始めることで、後からのコンフリクト(衝突)を防げる。 コンフリクトについては第5章で詳しく学ぶ。


Step 6: git clone — 既存リポジトリをコピーする

git clone とは

git clone は、リモートリポジトリをローカルに丸ごとコピーするコマンドである。

git clone https://github.com/ユーザー名/hello-git.git

実行すると、現在のディレクトリに hello-git フォルダが作成され、その中にリポジトリの全ファイルと全履歴がコピーされる。

clone と init の違い

コマンド用途リモートとの接続
git init新しいリポジトリを作るなし(手動で git remote add が必要)
git clone既存のリポジトリをコピーする自動的に設定される

git clone した後は、git remote が自動的に設定されているため、すぐに git pushgit pull ができる。

clone を使う場面

  • 別のPCで同じプロジェクトの開発を続けたいとき
  • チームメンバーのリポジトリを自分のPCにコピーしたいとき
  • オープンソースのプロジェクトを手元で試したいとき

Step 7: push / pull / clone の操作フロー

ここまで学んだ操作の全体像を図で確認しよう。

まとめ:3つのリモート操作
  • push: ローカル → リモートに変更を送る(「郵便を送る」イメージ)
  • pull: リモート → ローカルに変更を取り込む(「郵便を受け取る」イメージ)
  • clone: リモートのリポジトリをローカルに丸ごとコピーする(「引っ越し」イメージ)

Step 8: GitHubの画面の見方

GitHubのリポジトリページには、さまざまな情報が表示される。 ここでは主な画面要素を紹介する。

Code タブ

  • ファイル一覧とディレクトリ構造が表示される
  • ファイルをクリックすると内容を閲覧できる
  • README.md がある場合、リポジトリのトップページに自動表示される

コミット履歴

  • 「X commits」のリンクをクリックすると、全コミット履歴が表示される
  • 各コミットをクリックすると、そのコミットでの変更内容(diff)が確認できる

Blame機能

  • ファイルを開いた状態で「Blame」ボタンをクリックすると、各行が「いつ・誰に」書かれたかがわかる
  • バグの原因調査などで便利

Issues / Pull Requests タブ

  • Issues: バグ報告や機能要望を管理する
  • Pull Requests: コードの変更をチームでレビュー・マージする(第6章で詳しく学ぶ)

Step 9: 実践課題

課題1:GitHubリポジトリの作成とプッシュ

  1. GitHubに hello-git リポジトリを作成せよ(Privateでよい)
  2. 第2章で作成したローカルの hello-git リポジトリに、リモートを登録せよ
  3. git push -u origin main でプッシュせよ
  4. GitHubのWebページで、ファイルとコミット履歴が正しく表示されることを確認せよ

課題2:クローンの確認

  1. デスクトップなど別の場所に、先ほどプッシュしたリポジトリをクローンせよ
  2. クローンしたフォルダの中にファイルが正しくコピーされていることを確認せよ
  3. git log --oneline でコミット履歴が引き継がれていることを確認せよ

課題3:push / pull のサイクル

  1. クローン先でファイルを変更し、コミットしてプッシュせよ
  2. 元のディレクトリに戻り、git pull で最新の変更を取り込めることを確認せよ

まとめ

この章では、 GitHubとリモート操作 について学んだ。

🎯 達成できたこと

  • ✅ GitHubの役割を説明できるようになった
  • ✅ GitHubアカウントを作成し、リポジトリを作成できるようになった
  • ✅ HTTPS + Personal Access Token でGitHub接続を設定できるようになった
  • git push でローカルの変更をリモートに送れるようになった
  • git pull でリモートの変更をローカルに取り込めるようになった
  • git clone で既存リポジトリをコピーできるようになった

📚 学んだ内容

  • GitHubはリモートリポジトリのホスティングサービスである
  • Personal Access Token(PAT)でHTTPS認証を行う
  • git remote add でリモートリポジトリを登録する
  • git push でローカルの変更をリモートに送り、git pull で取り込む
  • git clone でリモートリポジトリをローカルに丸ごとコピーする
  • 作業開始前に git pull する習慣が重要

🚀 次のステップ

Day 7で学ぶGitの入門はここまでである。 次の章では、 変更の取り消しとバージョンの復元 を学ぶ。 間違えた操作を安全に元に戻す方法を身につけよう。


💡 よくある質問

Q1: HTTPS と SSH のどちらを使うべきか?

A: このブートキャンプでは HTTPS + Personal Access Token を推奨する。SSHは設定が複雑で環境差異も大きいため、初学者にはHTTPSの方が取り組みやすい。実務ではSSHを使うこともあるが、必要になったときに学べばよい。

Q2: Personal Access Token の有効期限が切れたらどうなるか?

A: git pushgit pull 時に認証エラーが発生する。その場合は、GitHubのSettings → Developer settings → Personal access tokens から新しいトークンを作成し直せばよい。

Q3: Public と Private はどう使い分けるか?

A: Public は誰でもコードを閲覧できる。オープンソースプロジェクトや、ポートフォリオとして公開したい場合に使う。 Private は自分と招待した人だけがアクセスできる。練習用や、仕事のコードには Private を使うのが一般的である。

Q4: git push したときに「rejected(拒否)」と表示された場合はどうすればよいか?

A: リモートに自分の知らない変更がある場合に発生する。まず git pull でリモートの変更を取り込んでから、再度 git push すればよい。チーム開発では、他のメンバーがプッシュした変更を取り込む必要がある。

Q5: GitHubのリポジトリを削除したい場合はどうすればよいか?

A: リポジトリのSettings画面の一番下にある「Delete this repository」から削除できる。ただし、リモートリポジトリを削除しても、ローカルリポジトリは残る。逆に、ローカルを削除してもリモートは残る。

Q6: git push でパスワードを毎回聞かれるのが面倒な場合はどうすればよいか?

A: Gitの 資格情報ヘルパー(credential helper) を設定すると、トークンを記憶してくれる。macOSの場合は git config --global credential.helper osxkeychain、Windowsの場合は git config --global credential.helper manager を実行すると、次回以降はパスワードの入力が不要になる。


練習問題

この章の内容を理解できたか確認しよう。

GitHubの役割として最も適切な説明を選べ。

正解

A. Gitリポジトリをクラウド上でホスティングし、チームでの共同開発を支援するサービス

解説

GitHub は、Gitリポジトリをインターネット上にホスティングし、チームでの共同開発を支援するサービスである。

GitHubが提供する主な機能:

  • リモートリポジトリ: コードをクラウド上に保存し、どこからでもアクセスできる
  • Pull Request(PR): コードレビューと変更の提案をする仕組み
  • Issue: バグ報告や機能要望を管理するタスク管理機能
  • Actions: CI/CDパイプラインを自動化する機能

GitとGitHubの違い

  • Git: バージョン管理システム(ローカルで動作)
  • GitHub: Gitリポジトリのホスティングサービス(クラウドサービス)

GitHubがなくてもGitは使えるが、チームでの開発にはGitHubのようなホスティングサービスが事実上必須である。

GitHubでリポジトリを作成する正しい方法を選べ。

正解

B. GitHubにログインし、「New repository」ボタンから名前を入力して作成する

解説

GitHubでリポジトリを作成する手順:

  1. GitHubにログインする
  2. 右上の「+」ボタン → 「New repository」を選択
  3. リポジトリ名を入力する(例:my-project
  4. 公開範囲を選択する(Public / Private)
  5. 「Create repository」ボタンをクリック

作成後に表示されるコマンド: 既存のローカルリポジトリと接続する場合:

git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main

リポジトリ名のルール

  • 英数字、ハイフン、アンダースコアが使える
  • スペースは使えない(代わりにハイフンを使う)
  • 同じアカウント内で重複できない

GitHubへのHTTPS接続で認証する正しい方法を選べ。

正解

C. GitHubのSettings → Developer settings → Personal access tokens でトークンを生成し、git push 時のパスワードとして使用する

解説

GitHubのHTTPS接続には、Personal Access Token(PAT) を使用する。

GitHubは2021年8月以降、パスワード認証を廃止した。代わりにPATを使う。

PATの生成手順

  1. GitHub右上のアイコン → Settings
  2. 左メニュー最下部「Developer settings」
  3. Personal access tokens → Tokens (classic) → Generate new token
  4. Note(説明)を入力し、repo スコープにチェック
  5. 「Generate token」でトークンを生成(一度しか表示されないため必ずコピーする)

使い方

git push origin main
# Username: GitHubのユーザー名
# Password: 生成したPAT(パスワードではない)

便利な設定: macOSではキーチェーンに保存されるため、2回目以降の入力が不要になる。

以下のコマンドの空欄を埋めて、ローカルの main ブランチをリモートリポジトリ(origin)に送信せよ。

$

解答例
git push origin main
解説

git push origin main は、ローカルの main ブランチをリモートリポジトリ(origin)に送信するコマンドである。

  • origin: リモートリポジトリの別名(git remote add origin URL で登録したURL)
  • main: 送信するブランチ名

初回のpush

git push -u origin main

-u オプションを付けると、以降は git push だけで同じリモートへ送れるようになる。

よくあるエラー

  • rejected: リモートに自分のローカルにない変更がある → git pull してからpushする
  • Permission denied: 認証情報が間違っている → PATを確認する

pushの流れ: ローカルリポジトリ → git push → リモートリポジトリ(GitHub)

以下のコマンドの空欄を埋めて、リモートリポジトリ(origin)の main ブランチの変更をローカルに取り込め。

$

解答例
git pull origin main
解説

git pull origin main は、リモートリポジトリ(origin)の main ブランチの変更をローカルに取り込むコマンドである。

git pullgit fetch + git merge を一度に行う操作である。

使用タイミング

  • チームメンバーが変更をpushした後、作業を始める前
  • 自分のローカルとリモートが乖離してきたと感じたとき
git pull origin main
# From https://github.com/user/repo
#  * branch main -> FETCH_HEAD
# Updating a1b2c3d..d4e5f6a
# Fast-forward
#  Main.java | 5 +++++

pushとpullの違い

コマンド方向
git pushローカル → リモート
git pullリモート → ローカル

注意点

  • git pull 前にローカルの変更をコミットしておくとコンフリクトを防ぎやすい

以下のコマンドの空欄を埋めて、GitHubのリポジトリをローカルにクローンせよ。

$
https://github.com/user/repo.git

解答例
git clone https://github.com/user/repo.git
解説

git clone URL は、リモートリポジトリをローカルにコピーするコマンドである。

クローンを実行すると:

  • リポジトリ名のディレクトリが自動作成される
  • リモートリポジトリの全履歴がコピーされる
  • origin というリモート名が自動設定される
git clone https://github.com/user/repo.git
# Cloning into 'repo'...
# remote: Counting objects: 100, done.

git clone と git init の違い

git initgit clone
用途新規リポジトリの作成既存リポジトリのコピー
origin設定されない自動設定される

クローン後の作業

cd repo          # クローンされたディレクトリに移動
git log          # 履歴を確認
git branch -a    # ブランチを確認

GitHubのリポジトリページにある 「Commits」 で確認できる内容として正しいものを選べ。

正解

C. Commits タブ — コミット履歴の一覧を確認できる

解説

GitHubのリポジトリページの主要タブの役割は以下の通りである。

タブ役割
Codeファイル一覧・README表示・ブランチ切り替え
Issuesバグ報告・機能要望などのタスク管理
Pull requestsコードレビューと変更のマージ管理
ActionsCI/CDの自動化ワークフロー
Commitsコミット履歴の一覧(Codeタブ内の「N commits」リンクからも見られる)

その他の重要な画面要素

  • ブランチセレクター: ファイル一覧の上部にある。ブランチを切り替えてコードを閲覧できる
  • Code(緑のボタン): クローン用URLやZIPダウンロード
  • README.md: リポジトリのトップページに自動表示されるドキュメント

以下の手順を実際に実施し、コマンドの実行結果とともに手順を記述せよ。

  1. ローカルでリポジトリを初期化し、Main.java を作成してコミットする
  2. GitHubにリポジトリを作成し、git remote add origin で接続する
  3. git push -u origin main でGitHubに送信する
  4. 別のディレクトリ(または別のPC)で git clone してコードを取得する
  5. 元のリポジトリで README.md を追加してpushし、クローン側で git pull して反映させる

解答例
# 手順例 ## Aさんの操作(push) # ローカルリポジトリを作成してGitHubに接続 git init my-project cd my-project git remote add origin https://github.com/Aさん/my-project.git # ファイルを作成してpush # Main.java を作成 git add Main.java git commit -m "Main.javaを追加" git push -u origin main ## Bさんの操作(clone + pull) # AさんのリポジトリをB環境にクローン git clone https://github.com/Aさん/my-project.git cd my-project # AさんがさらにREADME.mdを追加してpushした場合 git pull origin main # Bさんがローカルに反映
解説

push・clone・pullの一連の流れは、チーム開発の基本操作である。

典型的なワークフロー

  1. リポジトリ作成(Aさん)

    git init → git add → git commit → git remote add → git push
    
  2. クローン(Bさん)

    git clone URL → cd プロジェクト名
    
  3. 変更の共有サイクル

    • 変更した人: git addgit commitgit push
    • 受け取る人: git pull

よくある問題

  • pushしたのに相手に反映されない → 相手が git pull を忘れている
  • pushがrejectされる → 先に git pull して相手の変更を取り込む必要がある