Vibe Code Lab
Git / GitHubの基本 ── コードを保存・管理・公開する仕組み
ツール Step 2 約27分で読めます

Git / GitHubの基本 ── コードを保存・管理・公開する仕組み

なぜGitが必要なのか

バイブコーディングでコードを書いていると、こんなことが起きる:

  • AIに修正を頼んだら前より悪くなった。元に戻したい
  • 昨日まで動いていたのに今日動かない。何が変わった?
  • 作ったサイトをインターネットに公開したい
  • チームメンバーと同じコードを同時に編集したい

これを全て解決するのがGitGitHubだ。

Git    = コードの「セーブポイント」を作る仕組み(ローカルで動く)
GitHub = セーブデータをクラウドに保存・共有する場所(Webサービス)

ゲームのセーブ機能と同じ。いつでも過去の状態に戻れるし、クラウドに保存しておけばPCが壊れても安心だ。

ℹ️

GitとGitHubは別モノ

Gitはソフトウェア(ツール)。GitHubはWebサービス。Gitだけでもローカルでバージョン管理はできるが、GitHubと組み合わせることでクラウド保存・公開・共同作業ができるようになる。


GitとGitHubの全体像

まずGitの世界の登場人物を整理しよう。

基本用語一覧

用語意味ゲームで例えると
リポジトリ(repository)プロジェクトの保管庫。変更履歴も全て含むセーブファイル全体
コミット(commit)変更を記録することセーブする
ステージング(staging)コミットするファイルを選ぶ準備エリアセーブ対象を選択中
プッシュ(push)ローカルのコミットをGitHubにアップロードクラウドセーブ
プル(pull)GitHubの変更をローカルにダウンロードクラウドからロード
クローン(clone)GitHubのリポジトリを丸ごとコピーセーブデータをダウンロード
ブランチ(branch)別の世界線で試す仕組み分岐ルート
マージ(merge)ブランチの変更を統合する分岐ルートを合流
コンフリクト(conflict)同じ場所を別々に変更した衝突セーブデータの競合

データの流れ

あなたのPC(ローカル)          GitHub(リモート)
┌────────────┐                ┌────────────┐
│            │  ── push ──▶   │            │
│ ローカル    │                │ リモート    │
│ リポジトリ  │  ◀── pull ──  │ リポジトリ  │
│            │                │            │
└────────────┘                └────────────┘
  ▲ commit

┌────────────┐
│ ステージング │  ← git add で追加
│ エリア      │
└────────────┘
  ▲ git add

┌────────────┐
│ 作業ディレク │  ← ここでファイルを編集
│ トリ        │
└────────────┘
💡

最初はコミットとプッシュだけでOK

ブランチやマージは後から覚えればいい。まずは「コミット(保存)」と「プッシュ(アップロード)」の2つの操作を確実にできるようにしよう。


Gitのインストール

Mac の場合

ターミナルを開いて以下を入力する。Xcode Command Line Toolsの一部として自動的にインストールが始まる:

git --version
# → 初回は「インストールしますか?」と聞かれるので許可
# → git version 2.x.x と表示されればOK

もしHomebrewを使っているなら、最新版を入れることもできる:

brew install git

Windows の場合

  1. git-scm.com にアクセス
  2. 「Download for Windows」をクリック
  3. インストーラーを実行(設定はデフォルトのままで基本OK)
  4. 途中の「Adjusting your PATH」では 「Git from the command line and also from 3rd-party software」 を選択

インストール後、Git Bash(一緒にインストールされるターミナル)を開いて確認:

git --version
# → git version 2.x.x と表示されればOK
ℹ️

WindowsならGit Bashが便利

WindowsにはGit Bashというターミナルが付属する。Linux/Macと同じコマンドが使えるので、ネット上の解説記事をそのまま試せて便利だ。PowerShellやコマンドプロンプトでもGitは動くが、Git Bashが最も楽。

初期設定(最初の一度だけ)

Gitを使う前に、名前とメールアドレスを登録する。これはコミット履歴に「誰が変更したか」を記録するためのもの。

# 名前を設定(GitHubのユーザー名と合わせるのがおすすめ)
git config --global user.name "あなたの名前"

# メールアドレスを設定(GitHubに登録したメールと同じにする)
git config --global user.email "your@email.com"

設定内容を確認するには:

git config --global --list
# → user.name=あなたの名前
# → user.email=your@email.com
💡

エディタの設定もしておこう

コミットメッセージの編集にVimが起動して困る場合は、使い慣れたエディタに変更できる。VS Codeなら以下のコマンドで設定可能。

git config --global core.editor "code --wait"

GitHubアカウントの作成

  1. github.com にアクセス
  2. Sign up → メールアドレス、ユーザー名、パスワードを設定
  3. 無料プラン(Free)でOK(個人利用はほぼ全て無料)
  4. メール認証を済ませる

GitHubの無料プランでできること

機能無料プラン
パブリックリポジトリ無制限
プライベートリポジトリ無制限
共同作業者無制限
GitHub Actions(CI/CD)月2,000分
GitHub Pages(静的サイト公開)利用可能
ストレージ500MB(Packages)
💡

リポジトリの公開・非公開は自由に切り替え可能

最初は非公開(Private)で作って、完成したら公開(Public)に切り替えることもできる。気軽に試そう。


基本操作の流れ

Gitの基本操作は、大きく分けて3ステップだ。

Step 1

git init:リポジトリを作る

プロジェクトフォルダでGitを有効化する。最初の1回だけ。

1回だけ
Step 2

git add:変更をステージングする

コミットしたいファイルを選んでステージングエリアに追加する。

毎回
Step 3

git commit:変更を記録する

ステージングしたファイルをまとめて1つのコミットとして保存。メッセージを付ける。

毎回
Step 4

git push:GitHubにアップロード

ローカルのコミットをGitHubのリモートリポジトリに送信する。

区切りごと

Step 1:リポジトリを作る(最初の1回)

cd my-project        # プロジェクトフォルダに移動
git init             # Gitを初期化(セーブ機能ON)

git init を実行すると、フォルダ内に .git という隠しフォルダが作られる。ここにGitの全データが格納される。

Step 2:変更をステージングする

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

# 特定のファイルだけ追加したい場合
git add index.html
git add src/style.css

# 現在の状態を確認(何がステージングされているか)
git status
ℹ️

git add . は「全部」という意味

ピリオド(.)は「カレントディレクトリ以下の全ファイル」を意味する。特定のファイルだけコミットしたい場合は、ファイル名を個別に指定しよう。

Step 3:コミットする

git commit -m "ヘッダーのデザインを追加した"

-m の後に書くのがコミットメッセージ。「何を変えたか」を短く書く。

Step 4:GitHubにプッシュする

# 初回のみ:リモートリポジトリを登録
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main

# 2回目以降
git push

GitHubでリポジトリを作成してpushする手順

GitHubのWeb画面とターミナルを行き来する流れを詳しく解説する。

1

GitHubでリポジトリを作成

github.comの右上「+」→「New repository」をクリック。リポジトリ名を入力し、PublicまたはPrivateを選択。「Create repository」を押す。

2

表示されるコマンドをコピー

作成後に表示される「…or push an existing repository from the command line」のコマンド群をコピーする。

3

ローカルでコマンドを実行

ターミナルでプロジェクトフォルダに移動し、コピーしたコマンドを貼り付けて実行する。

4

GitHubで確認

ブラウザでリポジトリページをリロード。ファイルが表示されていれば成功。

実際のコマンド例

# ① ローカルでGitを初期化してコミット
cd my-portfolio
git init
git add .
git commit -m "初回コミット:ポートフォリオサイトの基本構造"

# ② GitHubのリモートリポジトリを登録
git remote add origin https://github.com/your-name/my-portfolio.git

# ③ メインブランチの名前をmainに設定(初回のみ)
git branch -M main

# ④ プッシュ
git push -u origin main
⚠️

認証が求められる場合

GitHubへのpush時にユーザー名・パスワードを聞かれたら、パスワードの代わりに**Personal Access Token(PAT)**を入力する。GitHubの Settings → Developer settings → Personal access tokens で作成できる。HTTPS接続の場合はこの方式が必須。SSH鍵を設定する方法もある。


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

コミットメッセージは「未来の自分への手紙」。後から見返したときに「何をしたか」がすぐにわかるように書こう。

良い例・悪い例

NGOKなぜ良いか
修正ヘッダーのロゴサイズを修正何を修正したか具体的
更新お問い合わせフォームにバリデーション追加何が更新されたか明確
fixログインボタンが押せないバグを修正日本語で内容がわかる
aaaトップページのヒーロー画像を差し替え意味のあるメッセージ

おすすめのフォーマット

# プレフィックスを付けるとさらに見やすい
git commit -m "feat: ダークモード切り替え機能を追加"
git commit -m "fix: スマホでメニューが閉じないバグを修正"
git commit -m "style: フッターのレイアウトを調整"
git commit -m "docs: READMEに環境構築手順を追記"
プレフィックス用途
feat新機能の追加
fixバグ修正
style見た目・レイアウトの変更
refactorコードの整理(動作は変わらない)
docsドキュメントの変更
chore設定ファイルの変更など雑務
💡

バイブコーディングでのコツ

AIにコードを書いてもらった後のコミットメッセージには「AIに何を指示したか」を書くと後で振り返りやすい。例:feat: AIに指示してお問い合わせフォームを作成


ブランチの基本

ブランチは「今の状態を壊さずに新しいことを試す」ための仕組みだ。

ブランチのイメージ

main ─────●─────●─────●─────●─────●──── 本番用(安定版)
                 │                 ▲
                 └──●──●──●───────┘
                  feature-login(新機能を開発中)

mainブランチは常に「動く状態」を保ち、新機能や実験はブランチを切って行う。完成したらmainに合流(マージ)させる。

ブランチの基本操作

# 新しいブランチを作成して切り替え
git checkout -b feature-login

# 今いるブランチを確認
git branch
# * feature-login   ← 今ここ
#   main

# ブランチで作業してコミット
git add .
git commit -m "feat: ログインフォームのHTMLを作成"

# mainブランチに戻る
git checkout main

# ブランチの変更をmainに統合
git merge feature-login

# 不要になったブランチを削除
git branch -d feature-login
ℹ️

初心者はまずmainブランチだけでOK

ブランチは便利だが、1人で開発するなら最初はmainブランチだけで十分。「大きな変更を試したいけど壊すのが怖い」と感じたときにブランチを使い始めよう。


よく使うコマンドまとめ

基本操作

やりたいことコマンド説明
状態を確認git status変更されたファイル一覧を表示
変更をステージングgit add .全変更をステージングエリアに追加
変更を記録git commit -m "メッセージ"ステージングした内容をコミット
GitHubにアップgit pushローカルのコミットをリモートに送信
GitHubから取得git pullリモートの最新を取り込む
変更履歴を見るgit log --onelineコミット履歴を1行ずつ表示

取り消し・復元

やりたいことコマンド説明
未コミットの変更を戻すgit checkout -- ファイル名特定ファイルを直前のコミット状態に戻す
全ファイルの変更を戻すgit checkout .未コミットの変更を全て破棄
ステージングを取り消すgit reset HEAD ファイル名addしたファイルをステージングから外す
直前のコミットを修正git commit --amendメッセージの修正やファイル追加
特定コミットの状態を見るgit checkout コミットID過去の状態を一時的に確認

情報確認

やりたいことコマンド説明
変更内容を見るgit diff未ステージングの変更差分を表示
リモートの確認git remote -v接続先のGitHub URLを確認
ブランチ一覧git branchローカルのブランチを一覧表示
コミット詳細を見るgit log --stat各コミットで変更されたファイルを表示

バイブコーディングでのGitの使い方

AIにコードを書いてもらうバイブコーディングでは、Gitは命綱だ。

鉄則:AIに変更させる前に必ずコミット

1

現在の状態をコミット

git add . → git commit -m '作業前のセーブ'。AIに大きな変更を頼む前に必ず保存。

2

AIに指示を出す

プロンプトでやりたいことを伝える。AIがコードを生成・修正する。

3

結果を確認

ブラウザで動作確認。git diff で変更内容もチェック。

4a

OKなら → コミット

git add . → git commit -m 'feat: AIでログイン機能を追加'。次の作業に進む。

4b

ダメなら → 元に戻す

git checkout . で変更を全て破棄。コミットした時点の状態に戻る。再度AIに別の指示を出す。

具体的なシナリオ

# --- シナリオ:AIにナビゲーションバーを作ってもらう ---

# ① 今の状態をセーブ
git add .
git commit -m "feat: トップページの基本構造を完成"

# ② AIに「ナビゲーションバーを追加して」と指示
# → AIがコードを生成

# ③ 確認:ブラウザで見てみる → いい感じ!
git add .
git commit -m "feat: レスポンシブなナビゲーションバーを追加"

# ④ 次にAIに「ダークモードを追加して」と指示
# → AIがコードを変更 → デザインが崩れた...

# ⑤ 元に戻す!
git checkout .
# → ナビゲーションバーが完成した状態に戻った

# ⑥ 指示を変えて再挑戦
# → 「既存のCSSを変更せずにダークモードを追加して」と指示
⚠️

コミットせずにAIに大きな変更をさせない

セーブせずにAIに大量の変更をさせると、元に戻せなくなる。「小さく変更 → セーブ → 確認」を繰り返すのが安全。この習慣がバイブコーディングの成功率を大きく左右する。

Claude Codeを使う場合

Claude CodeはGitを自動的に活用してくれる。コミットの提案もしてくれるので、手動でコマンドを打つ場面は少ない。ただしGitの概念を理解しておくと、以下の場面で役立つ:

  • Claude Codeが「コミットしますか?」と聞いてきたとき、適切に判断できる
  • 何か問題が起きたときに git loggit diff で自分で状況を把握できる
  • 「このコミットに戻して」と的確に指示できる

.gitignore ── 管理しないファイルを指定する

プロジェクトにはGitで管理すべきでないファイルがある。それを指定するのが .gitignore ファイルだ。

.gitignore に書くべきもの

種類理由
依存パッケージnode_modules/容量が巨大。npm install で復元可能
環境変数ファイル.envAPIキーやパスワードが含まれる
ビルド成果物dist/, build/コマンドで再生成可能
OS生成ファイル.DS_Store, Thumbs.db不要なシステムファイル
エディタ設定.vscode/(場合による)個人の設定は共有不要

.gitignore の書き方

プロジェクトのルート(一番上のフォルダ)に .gitignore というファイルを作成する:

# .gitignore の内容例

# 依存パッケージ
node_modules/

# 環境変数(APIキーなどの秘密情報)
.env
.env.local

# ビルド成果物
dist/
build/
.output/

# OS生成ファイル
.DS_Store
Thumbs.db

# ログファイル
*.log
⚠️

.envファイルは絶対にGitに入れない

APIキーやパスワードが書かれた .env ファイルをGitHubにプッシュすると、全世界に公開されてしまう。一度でもプッシュすると履歴に残るため、後から削除しても手遅れになることがある。.gitignore に必ず .env を追加しよう。


よくあるトラブルと解決法

トラブル1:pushしたら「rejected」エラー

! [rejected] main -> main (fetch first)

原因:GitHubのリモートに自分の手元にない変更がある。

解決策

# まずリモートの変更を取り込む
git pull origin main

# 自動マージされたら、改めてpush
git push

トラブル2:コンフリクト(衝突)が発生

同じファイルの同じ箇所を別々に変更すると発生する。

<<<<<<< HEAD
自分の変更内容
=======
相手の変更内容
>>>>>>> branch-name

解決策

  1. コンフリクトが発生したファイルを開く
  2. <<<<<<<=======>>>>>>> のマーカーを手動で削除
  3. 残したい内容だけを残す
  4. ファイルを保存して git addgit commit
# コンフリクトを解消した後
git add .
git commit -m "fix: マージコンフリクトを解消"
💡

バイブコーディングならAIに解決してもらえる

コンフリクトの内容をAIに見せて「このコンフリクトを解消して」と頼めば、適切に解決してくれることが多い。

トラブル3:大きなファイルをpushできない

remote: error: File large-video.mp4 is 150.00 MB; this exceeds GitHub's file size limit of 100.00 MB

解決策

# 大きなファイルをGitの管理から除外
echo "large-video.mp4" >> .gitignore

# すでにコミットしてしまった場合は履歴からも削除が必要
git rm --cached large-video.mp4
git commit -m "chore: 大きなファイルをGit管理から除外"

トラブル4:間違えてコミットしてしまった

# 直前のコミットメッセージを修正したい
git commit --amend -m "正しいメッセージ"

# 直前のコミットを取り消したい(変更は残す)
git reset --soft HEAD~1
# → ファイルの変更はそのまま、コミットだけ取り消される

トラブル5:「fatal: not a git repository」と言われる

原因:Gitが初期化されていないフォルダでコマンドを実行している。

解決策

# 正しいフォルダにいるか確認
pwd

# Git初期化がまだなら
git init

セットアップ完了チェックリスト

  • git --version でバージョンが表示される
  • git config --global user.name で名前が設定されている
  • git config --global user.email でメールが設定されている
  • GitHubアカウントを作成した
  • git initgit addgit commit の流れがわかった
  • git push でGitHubにコードをアップロードできた
  • .gitignore の役割を理解した

FAQ ── よくある質問

Q1. GitとGitHubは必ず両方必要ですか?

Gitだけでもローカルでバージョン管理は可能だ。ただしGitHubを使わないと「クラウドバックアップ」「サイト公開(GitHub Pages / Vercel / Cloudflare Pages)」「他の人との共同作業」ができない。バイブコーディングでサイトを公開したいなら、GitHubはほぼ必須と考えてよい。

Q2. コミットはどのくらいの頻度ですればいいですか?

「1つの作業が終わるごと」が目安。具体的には「ヘッダーを作った」「フォームを追加した」「バグを修正した」など、1つの意味のあるまとまりごとにコミットする。バイブコーディングでは「AIに1回指示を出して結果がOKだったタイミング」がちょうどいい。1日の終わりにまとめて1コミットだと粒度が粗すぎる。

Q3. プライベートリポジトリでも無料で使えますか?

はい、GitHubの無料プランでもプライベートリポジトリは無制限に作成できる。共同作業者の招待も無制限。個人開発では無料プランで困ることはほぼない。

Q4. 一度pushした機密情報(APIキーなど)を消すにはどうすればいいですか?

GitHubからファイルを削除しても、コミット履歴に残ってしまう。完全に消すには git filter-branchBFG Repo-Cleaner などの特殊なツールが必要で手順が複雑になる。**最善策は「最初から.gitignoreに入れておくこと」と「APIキーを即座に無効化して新しいキーを発行すること」**だ。

Q5. SourceTreeやGitHub DesktopなどのGUIツールを使ってもいいですか?

もちろんOK。GUIツールはコマンドを覚えなくてもGitを操作でき、視覚的に変更を確認できるメリットがある。ただしバイブコーディングではターミナルとの行き来が多いため、基本的なコマンドも知っておくと効率が良い。最初はGUIツールで慣れて、徐々にコマンドを覚えていくのがおすすめ。

Q6. 「git add .」と「git add -A」の違いは何ですか?

git add . はカレントディレクトリ以下の変更を全てステージングする。git add -A はリポジトリ全体の変更(削除されたファイルも含む)をステージングする。プロジェクトのルートディレクトリで実行する限り、実質的にはほぼ同じ動作になる。

Q7. 「main」と「master」の違いは何ですか?

以前はGitのデフォルトブランチ名が master だったが、2020年以降 main に変更された。GitHubで新しく作るリポジトリは main がデフォルト。古いリポジトリでは master のままの場合もある。名前が違うだけで機能は同じだ。


次はいよいよAIコーディングツールの使い方を学ぼう。Gitの基本を押さえた今なら、安心してAIにコードを書いてもらえるはずだ。

他のカテゴリの記事