🔰 講座05

GitHubでコードを安全に管理して変更履歴を使いこなせるようになる

⏱ 想定学習時間 10時間(1日2時間 × 5日間)
📋 前提条件 講座04修了・GitHubアカウント作成済み
🛤 パス A・B共通
この講座でできるようになること
5日間の学習スケジュール
日程学習内容
1日目Phase 1: Git の概念と基本操作
2日目Phase 2: GitHub との連携・初回 push
3日目Phase 3: .gitignore と .env の安全管理
4日目Phase 4: 変更を元に戻す(ミス対応)
5日目実践課題・復習
Gitワークフロー(ローカル → GitHub)
💻 コードを編集
ローカル作業
📦 git add
ステージング
📝 git commit
スナップショット保存
🌐 git push
GitHubに同期
1

Phase 1: Git の概念と基本操作

⏱ 約2時間
1-1

STEP 1-1: Git / GitBASH / GitHub の違い

この3つは似た名前ですが、まったく別のものです。混乱しやすいので整理しておきましょう。

名前例え話役割
Git「変更を記録する仕組み(タイムマシン)」バージョン管理のエンジン本体
GitBASH「Git を操作するためのリモコン」Git コマンドを打つターミナル(Windows専用)
GitHub「コードをクラウドに預ける金庫」Git リポジトリのオンライン保管サービス
タイムマシンとして考える

Git を「タイムマシン」とイメージすると理解しやすいです。コードの変更履歴(スナップショット)を記録しておけば、いつでも過去の状態に戻れます。GitHubはそのタイムマシンのデータをクラウドに保存してくれるサービスです。

⬡ GitHub
username/my-first-app
⭐ Star
Code ▼
📄 Code
🔀 Pull requests
⚙️ Settings
📁 src 初期コミット
📄 index.html アプリ本体を追加
📄 .gitignore gitignore追加

▲ GitHubのリポジトリ画面。ファイルがクラウドにアップロードされている状態

⚠️ エラーが出た場合

このSTEPは概念の説明のため、コマンド実行は行いません。次のSTEPに進んでください。

1-2

STEP 1-2: 基本フロー(edit → add → commit → push)の説明

Git の操作は4ステップで構成されます。この流れを体で覚えることが目標です。

4ステップの流れ
  1. edit(編集する) — コードを書く・変更する
  2. add(ステージング)git add で「このファイルをコミットする準備ができた」と宣言
  3. commit(スナップショット)git commit -m "メッセージ" でタイムマシンのセーブポイントを作る
  4. push(クラウドに送信)git push で保存したデータを GitHub に送る

よく使うコマンドの早見表:

コマンド意味使う場面
git status今の状態を確認いつでも(迷ったらまずこれ)
git add .全変更をステージングcommit 前
git add [ファイル名]特定ファイルをステージング部分的にコミットしたい時
git commit -m "..."スナップショットを作成ステージング後
git pushGitHub に送信commit 後
git log履歴を確認いつでも
git diff変更差分を確認commit 前に内容を確認する時
⚠️ エラーが出た場合

このSTEPは概念説明のため、実際のコマンド実行は次のSTEPで行います。コマンドが理解できなくても次に進んで構いません。

1-3

STEP 1-3: git init / status / add / commit / push の実践

実際にコマンドを実行して Git の基本フローを体験します。Windows の操作を先に説明し、その後 Mac の操作を記載します。

Git Bash
user@PC ~$ mkdir git-practice && cd git-practice
user@PC ~/git-practice$ git init
Initialized empty Git repository in .../git-practice/.git/
user@PC ~/git-practice (main)$ echo "# My First Git Project" > README.md
user@PC ~/git-practice (main)$ git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
user@PC ~/git-practice (main)$ git add README.md
user@PC ~/git-practice (main)$ git commit -m "最初のコミット: READMEを追加"
[main (root-commit) abc1234] 最初のコミット: READMEを追加
1 file changed, 1 insertion(+)

▲ Git Bashでの基本操作フロー。赤字=未追跡ファイル、緑字=コミット準備完了

【Windows 版】

GitBASH を起動して以下のコマンドを実行します(Cursor のターミナルでも同様)。

Git Bash / PowerShell — 練習用フォルダ作成 Windows
# 練習用フォルダを作成してそこに移動
mkdir git-practice
cd git-practice

# Git リポジトリを初期化
git init

# 練習用ファイルを作成
echo "# My First Git Project" > README.md

# 状態を確認(赤字=未追跡ファイル)
git status

# ファイルをステージングに追加
git add README.md

# 再度確認(緑字=コミット準備完了)
git status

# コミット(スナップショットを作成)
git commit -m "最初のコミット: READMEを追加"

# 履歴を確認
git log

【Mac 版】

ターミナルで同じコマンドを実行してください(コマンドは同一です)。

コミットメッセージのコツ

コミットメッセージは日本語でOKです。「何をしたか」がわかるメッセージを書く習慣を付けましょう。「修正」だけでは後から見た時に内容がわかりません。「ヘッダーのデザインを修正」のように具体的に書くのがコツです。

⚠️ エラーが出た場合

「Please tell me who you are.」が表示される場合

ユーザー名とメールアドレスが設定されていません。以下を実行してから再度 git commit を実行してください。

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

「hint: Using 'master' as the name...」という警告が出る場合

これは警告であり、エラーではありません。デフォルトブランチを main に設定するには:

git config --global init.defaultBranch main

設定後、フォルダを削除して再度 git init を実行してください。

1-4

STEP 1-4: Cursor のターミナルで git 操作をする

Cursor のターミナルは GitBASH と同じ git コマンドが使えます。コードを書きながら同じ画面でコミットできるため、作業が大幅にスムーズになります。

OSターミナルを開く操作
WindowsCtrl + `(バッククォート)
MacCmd + `(バッククォート)

または View → Terminal からも開けます。

Cursor でのおすすめワークフロー
  1. コードを修正(エディタ)
  2. ターミナルで git status で変更確認
  3. git add . でステージング
  4. git commit -m "変更内容" でコミット
  5. git push で GitHub に送信
⚠️ エラーが出た場合

Cursor のターミナルで git コマンドが見つからない場合、Git がインストールされていないか、PATH が通っていない可能性があります。

  • Windows: git-scm.com から Git for Windows をインストール
  • Mac: xcode-select --install を実行して Command Line Tools をインストール
  • インストール後、Cursor を再起動してからターミナルを開き直す
2

Phase 2: GitHub との連携

⏱ 約2時間
2-1

STEP 2-1: git remote add origin でリポジトリを接続

講座00で作成した GitHub リポジトリとローカルを接続します。この接続を「リモート」と呼びます。

接続手順
  1. GitHub でリポジトリページを開く
  2. 「Code」ボタン → 「HTTPS」タブを選択
  3. 表示されている URL をコピー(例: https://github.com/yourusername/my-first-app.git
  4. ターミナルで以下を実行
Git Bash / ターミナル — リモート接続 Windows / Mac 共通
# GitHubリポジトリを接続
git remote add origin https://github.com/yourusername/my-first-app.git

# 接続を確認
git remote -v

以下のように表示されれば成功です。

origin  https://github.com/yourusername/my-first-app.git (fetch)
origin  https://github.com/yourusername/my-first-app.git (push)
「origin」とは?

origin は GitHub の接続先につける「ニックネーム」です。慣習的に origin を使いますが、別の名前でも動作します。

⚠️ エラーが出た場合

「remote origin already exists」と表示される場合

すでに origin が設定されています。別の URL に変更したい場合:

git remote set-url origin https://github.com/yourusername/my-first-app.git
2-2

STEP 2-2: 初回 push(-u origin main)

初回 push には -u オプションが必要です。これ以降の push で git push だけで送れるようになります。

Git Bash / ターミナル — 初回プッシュ Windows / Mac 共通
git push -u origin main
パスワード認証について(重要)
項目入力内容
UsernameGitHub のユーザー名
PasswordPersonal Access Token(パスワードではなく PAT を入力)

Password の欄には GitHub のログインパスワードではなく、ghp_ で始まる Personal Access Token を入力してください。

Git Bash
user@PC ~/my-project (main)$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 256 bytes | 256.00 KiB/s, done.
To https://github.com/username/my-first-app.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

▲ 初回 git push が成功したときのターミナル出力

⚠️ エラーが出た場合

「Authentication failed」と表示される場合

  • PAT を正確にコピーしているか確認(先頭・末尾にスペースがないか)
  • PAT の有効期限が切れていないか GitHub で確認(Settings → Developer settings → Tokens)
  • PAT の権限に repo が含まれているか確認

「rejected - non-fast-forward」と表示される場合

GitHub 側にローカルにないコミットがある場合に発生します。以下を実行してからもう一度 push してください。

git pull origin main --allow-unrelated-histories
2-3

STEP 2-3: 2回目以降の push の流れ

初回設定が完了すると、以降は以下の3コマンドだけで push できます。この3つを定型作業として身につけましょう。

Git Bash / ターミナル — 定常の push フロー Windows / Mac 共通
git add .
git commit -m "変更内容を書く(例: ヘッダーのデザインを修正)"
git push

コミットメッセージの書き方の例:

変更の種類メッセージ例
新機能追加feat: チャット機能を追加
バグ修正fix: 送信ボタンが押せないバグを修正
デザイン変更style: ヘッダーの背景色を変更
コード整理refactor: サービスファイルを分割
ファイル追加add: instructions.mdを追加
⚠️ エラーが出た場合

「nothing to commit」と表示される場合

ファイルに変更がない状態です。ファイルを編集・保存してから再度 git add . を実行してください。

「error: src refspec main does not match any」と表示される場合

まだコミットが1つもない状態です。先に git commit を実行してください。

2-4

STEP 2-4: GitHub でコードが反映されているか確認

push 後、GitHub のリポジトリページで正しく反映されているかを確認します。

確認手順
  1. ブラウザで https://github.com/[ユーザー名]/[リポジトリ名] を開く
  2. ページを更新する(F5 / Ctrl+R
  3. 以下を確認
確認項目場所
ファイルが表示されているファイル一覧
最新のコミットメッセージが表示されているファイル一覧の右上
コミット数が増えている「X commits」リンク
⬡ GitHub
username/my-first-app
🕐 3 commits
📄 Code
🔀 Pull requests
⚙️ Settings
📄 README.md ヘッダーのデザインを修正 — 3分前
📄 index.html アプリ本体を追加 — 1時間前

▲ push 後の GitHub リポジトリ。最新コミットメッセージと変更日時が確認できる

⚠️ エラーが出た場合

GitHub にアクセスしてもファイルが表示されない場合、push が失敗している可能性があります。ターミナルに戻って git push の出力を確認してください。エラーメッセージがある場合はそれをCursorに貼り付けて修正を依頼してください。

3

Phase 3: .gitignore と .env の安全管理

⏱ 約2時間
3-1

STEP 3-1: .gitignore の書き方と確認方法

.gitignore は「Git で管理しないファイルを指定するファイル」です。API キーや大きなファイルを誤って GitHub に公開しないために必須の知識です。

.gitignore — 基本的な書き方 全OS共通
# コメントは # で書く

# 特定のファイルを除外(APIキーなど)
.env
secrets.txt

# 特定のフォルダを除外(大きなファイル群)
node_modules/
dist/
.vscode/

# 特定の拡張子を除外
*.log
*.tmp

.gitignore が機能しているか確認する方法:

Git Bash / ターミナル — gitignore の確認 Windows / Mac 共通
# .envが除外されているか確認(表示されれば除外されている)
git check-ignore -v .env

# git status でも確認可(.envが一覧に出なければ除外されている)
git status
gitignore.io の活用

https://www.toptal.com/developers/gitignore にアクセスして使用技術(例: Node, React, Windows)を入力すると、適切な .gitignore を自動生成してくれます。

⚠️ エラーが出た場合

.gitignore に書いたのに git status に表示される場合

すでに Git に追跡されているファイルは .gitignore に追加しても無視されません。追跡を外すには:

git rm --cached .env

その後 .gitignore に追記してコミットしてください。

3-2

STEP 3-2: .env が誤って push された場合の緊急対処手順

最も重大なミスの一つ

API キーが GitHub に公開されると、第三者が不正利用できる状態になります。発覚したらすぐに以下の手順を実行してください。

緊急対処フロー(この順番で実行)
  1. API キーをすぐに無効化・再発行する — Google AI Studio の API キー管理ページ(aistudio.google.com)で漏洩したキーを削除し、新しいキーを発行する
  2. Git の追跡から .env を外す
  3. .gitignore に .env を追加する
  4. 変更をコミット・push する
  5. GitHub で .env が見えなくなったか確認する
Git Bash / ターミナル — .env の緊急除去 Windows / Mac 共通
# .envをGitの追跡から外す(ファイルは残る)
git rm --cached .env

# .gitignoreに.envを追記する(エディタで追記してもよい)

# 変更をコミット・pushする
git add .gitignore
git commit -m "fix: .envをGit管理から除外"
git push
⚠️ 過去のコミットにも .env の内容が残っている場合

履歴から完全に削除するには高度な操作が必要です。学習段階では以下の対応で十分です:

  • 上記の手順で現在の追跡を外す
  • API キーを新しいものに変更する
  • 古いキーは削除済みなので、履歴に残っていても不正利用できない
3-3

STEP 3-3: gitignore.io を使った自動生成

プロジェクトの種類に合わせた .gitignore を自動生成してくれるサービスです。

使い方
  1. ブラウザで https://www.toptal.com/developers/gitignore を開く
  2. テキストボックスに使用技術を入力(例: Node, React, Windows
  3. 「Create」ボタンをクリック
  4. 生成されたテキストをコピーして .gitignore に貼り付ける
プロジェクト種類入力するキーワード
React + ViteNode, React, Windows(Macなら macOS も追加)
シンプルな HTML/JSNode, Windows
⚠️ エラーが出た場合

サービスにアクセスできない場合は、以下の最低限の内容を .gitignore に手動で記述してください:

.env
node_modules/
dist/
.DS_Store
4

Phase 4: 変更を元に戻す(ミス対応)

⏱ 約2時間
4-1

STEP 4-1: git checkout -- . で全変更を取り消す(コミット前)

ファイルを編集したけど「全部元に戻したい」という場合に使います。コミットしていない変更を全部取り消します。

Git Bash / ターミナル — コミット前の変更取り消し Windows / Mac 共通
# コミットしていない変更を全部取り消す
git checkout -- .

# 特定のファイルだけ元に戻す場合
git checkout -- index.html
警告: このコマンドは取り消せません

コミットしていない変更は完全に失われます。実行前に git status で何が変わっているかを確認してください。

⚠️ エラーが出た場合

実行したのに変更が残っている場合

新しく追加したファイル(untracked files)は git checkout -- . では削除されません。新しく追加したファイルも削除したい場合:

# 削除予定のファイルを確認(-n でドライラン)
git clean -nfd

# 実際に削除する
git clean -fd
4-2

STEP 4-2: git reset --soft HEAD~1 で直前のコミットを取り消す

「コミットしたけどメッセージを間違えた」「まだコミットしたくなかった」という場合に使います。変更内容は残したまま、コミットだけを取り消せます。

Git Bash / ターミナル — 直前コミットの取り消し Windows / Mac 共通
# 直前のコミットを取り消す(変更内容は残る)
git reset --soft HEAD~1

# その後、正しいメッセージで再コミット
git commit -m "正しいコミットメッセージ"
オプションファイルの変更ステージング用途
--soft残るステージング済みのままコミットをやり直したい
--mixed(デフォルト)残るステージングが外れるコミットを取り消してやり直したい
--hard削除されるリセットされる完全に捨てたい(危険)
注意: --hard は変更内容が完全に消えます

学習中は --soft--mixed を使うことをおすすめします。--hard は使う前に必ず目的を確認してください。

⚠️ エラーが出た場合

「fatal: Failed to resolve 'HEAD~1'」と表示される場合

まだコミットが1つもない状態です。このコマンドはコミットが存在する場合のみ使えます。

4-3

STEP 4-3: Vercel のロールバック機能(参考知識)

Vercel でデプロイしている場合(講座06で扱います)、本番環境を以前の状態に戻す機能があります。ここでは「そういう機能がある」ことを知っておけば十分です。

ロールバックを使う場面
  • 本番にデプロイしたら画面が壊れた
  • API キーを変更したら動かなくなった
  • 機能を追加したらバグが発生した
Vercel でのロールバック手順(参考)
  1. Vercel ダッシュボードでプロジェクトを開く
  2. 「Deployments」タブをクリック
  3. 戻りたいデプロイの「...」メニューをクリック
  4. 「Promote to Production」をクリック
⚠️ エラーが出た場合

Vercel のロールバック手順は講座06で詳しく説明します。このSTEPでは概念の把握のみで問題ありません。

📝

実践課題: アプリを GitHub に push して変更サイクルを3回実践する

⏱ 約2時間
課題

変更 → commit → push のサイクルを3回繰り返す

講座04で作成したアプリを GitHub に push し、変更 → commit → push のサイクルを3回実践してください。

Git Bash / ターミナル — 事前準備 Windows / Mac 共通
# アプリフォルダに移動してGitを初期化
cd [アプリのフォルダパス]
git init
git add .
git commit -m "初回コミット: アプリの初期状態"
git remote add origin https://github.com/[ユーザー名]/[リポジトリ名].git
git push -u origin main
Git Bash / ターミナル — 1回目の変更サイクル Windows / Mac 共通
# index.htmlを開いてタイトルを変更後
git status
git add .
git commit -m "style: ページタイトルを変更"
git push
Git Bash / ターミナル — 2〜3回目も同様のサイクル Windows / Mac 共通
# 2回目: CSSでスタイルを変更後
git add .
git commit -m "style: 背景色とフォントサイズを変更"
git push

# 3回目: 新しいコンテンツを追加後
git add .
git commit -m "feat: フッターセクションを追加"
git push

修了条件チェックリスト