GitHubでコードを安全に管理して変更履歴を使いこなせるようになる
- Git の「add → commit → push」の基本フローをマスターできる
- コードを GitHub にアップロードして変更履歴を管理できる
.gitignoreで API キーなどの機密情報を誤って公開しないよう守れる- 誤った変更を元に戻す3種類の方法を使い分けられる
- Cursor のターミナルで日常的に git 操作ができる
| 日程 | 学習内容 |
|---|---|
| 1日目 | Phase 1: Git の概念と基本操作 |
| 2日目 | Phase 2: GitHub との連携・初回 push |
| 3日目 | Phase 3: .gitignore と .env の安全管理 |
| 4日目 | Phase 4: 変更を元に戻す(ミス対応) |
| 5日目 | 実践課題・復習 |
Phase 1: Git の概念と基本操作
STEP 1-1: Git / GitBASH / GitHub の違い
この3つは似た名前ですが、まったく別のものです。混乱しやすいので整理しておきましょう。
| 名前 | 例え話 | 役割 |
|---|---|---|
| Git | 「変更を記録する仕組み(タイムマシン)」 | バージョン管理のエンジン本体 |
| GitBASH | 「Git を操作するためのリモコン」 | Git コマンドを打つターミナル(Windows専用) |
| GitHub | 「コードをクラウドに預ける金庫」 | Git リポジトリのオンライン保管サービス |
Git を「タイムマシン」とイメージすると理解しやすいです。コードの変更履歴(スナップショット)を記録しておけば、いつでも過去の状態に戻れます。GitHubはそのタイムマシンのデータをクラウドに保存してくれるサービスです。
▲ GitHubのリポジトリ画面。ファイルがクラウドにアップロードされている状態
⚠️ エラーが出た場合
このSTEPは概念の説明のため、コマンド実行は行いません。次のSTEPに進んでください。
STEP 1-2: 基本フロー(edit → add → commit → push)の説明
Git の操作は4ステップで構成されます。この流れを体で覚えることが目標です。
- edit(編集する) — コードを書く・変更する
- add(ステージング) —
git addで「このファイルをコミットする準備ができた」と宣言 - commit(スナップショット) —
git commit -m "メッセージ"でタイムマシンのセーブポイントを作る - push(クラウドに送信) —
git pushで保存したデータを GitHub に送る
よく使うコマンドの早見表:
| コマンド | 意味 | 使う場面 |
|---|---|---|
git status | 今の状態を確認 | いつでも(迷ったらまずこれ) |
git add . | 全変更をステージング | commit 前 |
git add [ファイル名] | 特定ファイルをステージング | 部分的にコミットしたい時 |
git commit -m "..." | スナップショットを作成 | ステージング後 |
git push | GitHub に送信 | commit 後 |
git log | 履歴を確認 | いつでも |
git diff | 変更差分を確認 | commit 前に内容を確認する時 |
⚠️ エラーが出た場合
このSTEPは概念説明のため、実際のコマンド実行は次のSTEPで行います。コマンドが理解できなくても次に進んで構いません。
STEP 1-3: git init / status / add / commit / push の実践
実際にコマンドを実行して Git の基本フローを体験します。Windows の操作を先に説明し、その後 Mac の操作を記載します。
▲ Git Bashでの基本操作フロー。赤字=未追跡ファイル、緑字=コミット準備完了
【Windows 版】
GitBASH を起動して以下のコマンドを実行します(Cursor のターミナルでも同様)。
# 練習用フォルダを作成してそこに移動 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 を実行してください。
STEP 1-4: Cursor のターミナルで git 操作をする
Cursor のターミナルは GitBASH と同じ git コマンドが使えます。コードを書きながら同じ画面でコミットできるため、作業が大幅にスムーズになります。
| OS | ターミナルを開く操作 |
|---|---|
| Windows | Ctrl + `(バッククォート) |
| Mac | Cmd + `(バッククォート) |
または View → Terminal からも開けます。
- コードを修正(エディタ)
- ターミナルで
git statusで変更確認 git add .でステージングgit commit -m "変更内容"でコミットgit pushで GitHub に送信
⚠️ エラーが出た場合
Cursor のターミナルで git コマンドが見つからない場合、Git がインストールされていないか、PATH が通っていない可能性があります。
- Windows: git-scm.com から Git for Windows をインストール
- Mac:
xcode-select --installを実行して Command Line Tools をインストール - インストール後、Cursor を再起動してからターミナルを開き直す
Phase 2: GitHub との連携
STEP 2-1: git remote add origin でリポジトリを接続
講座00で作成した GitHub リポジトリとローカルを接続します。この接続を「リモート」と呼びます。
- GitHub でリポジトリページを開く
- 「Code」ボタン → 「HTTPS」タブを選択
- 表示されている URL をコピー(例:
https://github.com/yourusername/my-first-app.git) - ターミナルで以下を実行
# 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 は GitHub の接続先につける「ニックネーム」です。慣習的に origin を使いますが、別の名前でも動作します。
⚠️ エラーが出た場合
「remote origin already exists」と表示される場合
すでに origin が設定されています。別の URL に変更したい場合:
git remote set-url origin https://github.com/yourusername/my-first-app.git
STEP 2-2: 初回 push(-u origin main)
初回 push には -u オプションが必要です。これ以降の push で git push だけで送れるようになります。
git push -u origin main
| 項目 | 入力内容 |
|---|---|
| Username | GitHub のユーザー名 |
| Password | Personal Access Token(パスワードではなく PAT を入力) |
Password の欄には GitHub のログインパスワードではなく、ghp_ で始まる Personal Access Token を入力してください。
▲ 初回 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
STEP 2-3: 2回目以降の push の流れ
初回設定が完了すると、以降は以下の3コマンドだけで push できます。この3つを定型作業として身につけましょう。
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 を実行してください。
STEP 2-4: GitHub でコードが反映されているか確認
push 後、GitHub のリポジトリページで正しく反映されているかを確認します。
- ブラウザで
https://github.com/[ユーザー名]/[リポジトリ名]を開く - ページを更新する(F5 / Ctrl+R)
- 以下を確認
| 確認項目 | 場所 |
|---|---|
| ファイルが表示されている | ファイル一覧 |
| 最新のコミットメッセージが表示されている | ファイル一覧の右上 |
| コミット数が増えている | 「X commits」リンク |
▲ push 後の GitHub リポジトリ。最新コミットメッセージと変更日時が確認できる
⚠️ エラーが出た場合
GitHub にアクセスしてもファイルが表示されない場合、push が失敗している可能性があります。ターミナルに戻って git push の出力を確認してください。エラーメッセージがある場合はそれをCursorに貼り付けて修正を依頼してください。
Phase 3: .gitignore と .env の安全管理
STEP 3-1: .gitignore の書き方と確認方法
.gitignore は「Git で管理しないファイルを指定するファイル」です。API キーや大きなファイルを誤って GitHub に公開しないために必須の知識です。
# コメントは # で書く # 特定のファイルを除外(APIキーなど) .env secrets.txt # 特定のフォルダを除外(大きなファイル群) node_modules/ dist/ .vscode/ # 特定の拡張子を除外 *.log *.tmp
.gitignore が機能しているか確認する方法:
# .envが除外されているか確認(表示されれば除外されている) git check-ignore -v .env # git status でも確認可(.envが一覧に出なければ除外されている) git status
https://www.toptal.com/developers/gitignore にアクセスして使用技術(例: Node, React, Windows)を入力すると、適切な .gitignore を自動生成してくれます。
⚠️ エラーが出た場合
.gitignore に書いたのに git status に表示される場合
すでに Git に追跡されているファイルは .gitignore に追加しても無視されません。追跡を外すには:
git rm --cached .env
その後 .gitignore に追記してコミットしてください。
STEP 3-2: .env が誤って push された場合の緊急対処手順
API キーが GitHub に公開されると、第三者が不正利用できる状態になります。発覚したらすぐに以下の手順を実行してください。
- API キーをすぐに無効化・再発行する — Google AI Studio の API キー管理ページ(aistudio.google.com)で漏洩したキーを削除し、新しいキーを発行する
- Git の追跡から .env を外す
- .gitignore に .env を追加する
- 変更をコミット・push する
- GitHub で .env が見えなくなったか確認する
# .envをGitの追跡から外す(ファイルは残る) git rm --cached .env # .gitignoreに.envを追記する(エディタで追記してもよい) # 変更をコミット・pushする git add .gitignore git commit -m "fix: .envをGit管理から除外" git push
⚠️ 過去のコミットにも .env の内容が残っている場合
履歴から完全に削除するには高度な操作が必要です。学習段階では以下の対応で十分です:
- 上記の手順で現在の追跡を外す
- API キーを新しいものに変更する
- 古いキーは削除済みなので、履歴に残っていても不正利用できない
STEP 3-3: gitignore.io を使った自動生成
プロジェクトの種類に合わせた .gitignore を自動生成してくれるサービスです。
- ブラウザで https://www.toptal.com/developers/gitignore を開く
- テキストボックスに使用技術を入力(例:
Node,React,Windows) - 「Create」ボタンをクリック
- 生成されたテキストをコピーして
.gitignoreに貼り付ける
| プロジェクト種類 | 入力するキーワード |
|---|---|
| React + Vite | Node, React, Windows(Macなら macOS も追加) |
| シンプルな HTML/JS | Node, Windows |
⚠️ エラーが出た場合
サービスにアクセスできない場合は、以下の最低限の内容を .gitignore に手動で記述してください:
.env node_modules/ dist/ .DS_Store
Phase 4: 変更を元に戻す(ミス対応)
STEP 4-1: git checkout -- . で全変更を取り消す(コミット前)
ファイルを編集したけど「全部元に戻したい」という場合に使います。コミットしていない変更を全部取り消します。
# コミットしていない変更を全部取り消す git checkout -- . # 特定のファイルだけ元に戻す場合 git checkout -- index.html
コミットしていない変更は完全に失われます。実行前に git status で何が変わっているかを確認してください。
⚠️ エラーが出た場合
実行したのに変更が残っている場合
新しく追加したファイル(untracked files)は git checkout -- . では削除されません。新しく追加したファイルも削除したい場合:
# 削除予定のファイルを確認(-n でドライラン) git clean -nfd # 実際に削除する git clean -fd
STEP 4-2: git reset --soft HEAD~1 で直前のコミットを取り消す
「コミットしたけどメッセージを間違えた」「まだコミットしたくなかった」という場合に使います。変更内容は残したまま、コミットだけを取り消せます。
# 直前のコミットを取り消す(変更内容は残る) git reset --soft HEAD~1 # その後、正しいメッセージで再コミット git commit -m "正しいコミットメッセージ"
| オプション | ファイルの変更 | ステージング | 用途 |
|---|---|---|---|
--soft | 残る | ステージング済みのまま | コミットをやり直したい |
--mixed(デフォルト) | 残る | ステージングが外れる | コミットを取り消してやり直したい |
--hard | 削除される | リセットされる | 完全に捨てたい(危険) |
学習中は --soft か --mixed を使うことをおすすめします。--hard は使う前に必ず目的を確認してください。
⚠️ エラーが出た場合
「fatal: Failed to resolve 'HEAD~1'」と表示される場合
まだコミットが1つもない状態です。このコマンドはコミットが存在する場合のみ使えます。
STEP 4-3: Vercel のロールバック機能(参考知識)
Vercel でデプロイしている場合(講座06で扱います)、本番環境を以前の状態に戻す機能があります。ここでは「そういう機能がある」ことを知っておけば十分です。
- 本番にデプロイしたら画面が壊れた
- API キーを変更したら動かなくなった
- 機能を追加したらバグが発生した
- Vercel ダッシュボードでプロジェクトを開く
- 「Deployments」タブをクリック
- 戻りたいデプロイの「...」メニューをクリック
- 「Promote to Production」をクリック
⚠️ エラーが出た場合
Vercel のロールバック手順は講座06で詳しく説明します。このSTEPでは概念の把握のみで問題ありません。
実践課題: アプリを GitHub に push して変更サイクルを3回実践する
変更 → commit → push のサイクルを3回繰り返す
講座04で作成したアプリを GitHub に push し、変更 → commit → push のサイクルを3回実践してください。
# アプリフォルダに移動してGitを初期化 cd [アプリのフォルダパス] git init git add . git commit -m "初回コミット: アプリの初期状態" git remote add origin https://github.com/[ユーザー名]/[リポジトリ名].git git push -u origin main
# index.htmlを開いてタイトルを変更後 git status git add . git commit -m "style: ページタイトルを変更" git push
# 2回目: CSSでスタイルを変更後 git add . git commit -m "style: 背景色とフォントサイズを変更" git push # 3回目: 新しいコンテンツを追加後 git add . git commit -m "feat: フッターセクションを追加" git push