効率的で安全なClaude Code開発のために、GitHubでバージョン管理を組み合わせた実践的な開発ワークフローをご紹介します。これにより、いつでも前の状態に戻れる安心感と、定期的な開発進捗管理が可能になります。

Vibe Codingのワークフロー 実行編2 - Claude Codeに「Serena」を導入する Vibe Codingのワークフロー 実行編2 - Claude Codeに「Serena」を導入する Serenaとは?Serenaは、Claude CodeなどのAIコーディングツールを劇的に強化するオープンソースツールです。一言でいうと、「AIに、あなたのプロジェクトを深く理解させるための賢い通訳者」の役割を果たします。従来のAIコーディングは、分厚い専門... 続きを読む

なぜGitHub + Claude Codeなのか?

GitHub組み合わせのメリット

  • 安全なバックアップ: クラウドに自動保存
  • 完全な履歴管理: いつでも任意の時点に戻れる
  • 進捗の可視化: コミット履歴で開発進行が一目瞭然
  • エラー状況の把握: Git履歴でエラー発生タイミングを追跡
  • 品質ゲートの設定: ESLint・テストによる自動品質チェック

Step 1: GitHubリポジトリの準備

1.1 リポジトリ作成の手順

  1. GitHub(github.com) にログイン
  2. 「New repository」をクリック
  3. 基本設定を入力
    Repository name: [プロダクト名]
    Description: Electron-based multi grep replacer with superior UI responsiveness
    Visibility: Private(開発中は非公開推奨)
    
  4. 重要な初期設定
    • 「Add a README file」にチェック
    • 「Add .gitignore」→「Node」を選択
    • 「Choose a license」→「MIT License」を選択
  5. 「Create repository」をクリック

1.2 ライセンス選択のポイント

  • WordPress開発では「GPL v2.0」が必須
    (✅ GNU General Public License v2.0(これを選択))
  • Electronアプリでは「MIT License」が推奨(多くのElectronアプリがMITを採用)

Step 2: ローカル環境での認証設定

2.1 Personal Access Token(推奨方法)

GitHub がパスワード認証を廃止したため、Personal Access Token が必要です。

Token作成手順

  1. 右上アイコン → Settings → Developer settings(左下)
  2. Personal access tokens → Tokens (classic)
  3. 「Generate new token (classic)」
  4. 設定内容
    Note: [プロダクト名]-development
    Expiration: No expiration(適切な期間を選択)
    Scopes:
    ✅ repo(Full control of private repositories)
    ✅ workflow(GitHub Actions用、必要に応じて)
    
  5. 「Generate token」をクリック
  6. ⚠️ 重要: 表示されたTokenをすぐにコピー(再表示されません)

使用方法

cd "[プロジェクトディレクトリ]"
git clone https://github.com/[ユーザー名]/[プロダクト名].git
Username: [ユーザー名]
Password: [ここにPersonal Access Tokenを貼り付け]

2.2 SSH認証(より安全・推奨)

長期開発や複数プロジェクトがある場合はSSH認証がより便利です。

SSH Key生成・設定

# SSH Key生成
ssh-keygen -t ed25519 -C "your-email@example.com"

# SSH Agentに追加
ssh-add ~/.ssh/id_ed25519

# 公開鍵をクリップボードにコピー(macOS)
pbcopy < ~/.ssh/id_ed25519.pub

# 公開鍵を表示(Linux/Windows)
cat ~/.ssh/id_ed25519.pub

GitHubに公開鍵登録

  1. GitHub Settings → SSH and GPG keys
  2. 「New SSH key」
  3. 公開鍵を貼り付けて保存

clone

git clone https://github.com/[ユーザー名]/[プロダクト名].git

2.3 認証情報の管理

Personal Access Token の安全な保存

  • パスワードマネージャー: KeePassXC等で管理
  • Git Credential Manager: 自動認証情報管理

機密情報の分離

# .gitignore で除外
echo "config/secrets.js" >> .gitignore
echo ".env" >> .gitignore
echo "dist/" >> .gitignore
git add .gitignore
git commit -m "security: 機密ファイルを除外"

Step 3: プロジェクト構造とブランチ戦略

3.1 プロジェクト構造の確立

# 必要な設計書をプロジェクトルートに配置
[プロダクト名]/
├── src/                         # アプリケーションソース
├── docs/                        # 開発ドキュメント  
│   ├── 01_requirements.md          # 要件定義書
│   ├── 02_architecture.md          # システム設計書
│   ├── 03_development-workflow.md  # 開発/テスト方針(段階的テストとログ記録の徹底)
│   ├── 04_database.md          # データベース設計書(必要な場合)
│   ├── 05_api.md               # API設計書
│   ├── 06_errors.md            # エラーハンドリング設計
│   ├── 07_testing.md           # テスト戦略策定
│   ├── 07_setup.md             # 開発環境セットアップ
│   ├── 08_design.md            # デザインシステム定義(必要な場合)
│   └── 10_tasks.md                 # 開発タスク・ロードマップ
├── logs/                        # 動的記録 + Vibe Logger
│   ├── CHANGELOG.md            # 開発進捗記録
│   ├── ERRORLOG.md             # エラー・問題記録
│   └── PATTERNS.md             # 知見蓄積記録
└── CLAUDE.md                    # Claude Code設定(統括ファイル)

3.2 ブランチ戦略の決定

⚠️ 重要: GitHubでリポジトリを作成した直後はmainブランチのみが存在します。

シンプルなワークフロー(推奨)

小規模プロジェクトではmainブランチのみを使用:

# mainブランチで直接開発(シンプル)
git checkout main

高度なブランチ戦略(オプション)

より安全な開発が必要な場合:

# 開発用ブランチ作成
git checkout -b develop

# 機能別ブランチ(必要に応じて)
git checkout -b feature/phase-1-core
git checkout -b feature/phase-2-gui

Step 4: 確実なコミット作業

重要なポイント: Claude CodeはGit操作を忘れやすく、エラーを放置する傾向があるため、手動で確認した方が確実です。

📍手動での確実なコミット

# コミット前の確認
git status                    # 変更ファイル確認
git diff --staged             # ステージされた変更確認

# コミット作業
git add .
git commit -m "feat: Task X.X: [実装内容の要約]"
git push origin main          # プッシュ実行

# コミット後の確認
git log --oneline -3          # 最新コミット確認
git show HEAD --stat          # 最新コミットの詳細確認

全てのファイルを一旦Git追跡から削除したい場合

git rm -r --cached .          # 全てのファイルをGit追跡から削除
git add .                     # .gitignoreに従って再度追加
git commit -m "chore: .gitignoreを更新"
git push origin main          # プッシュ実行

⚠️ 強制push(リモートの履歴を上書き)

git add .
git commit -m "feat: Task X.X: [実装内容の要約]"
git push origin main --force  # 完全にローカルの内容で上書きされます。

コミットメッセージの接頭辞(プレフィックス)について

これは Conventional Commits という規約に基づいています。

よく使われるコミットタイプ

タイプ 意味 使用例
feat 新機能の追加 feat: ユーザー検索機能を追加
fix バグ修正 fix: ログイン時のエラーを修正
docs ドキュメントのみの変更 docs: READMEにインストール手順を追加
style コードの意味に影響しない変更
(空白、フォーマット等)
style: インデントを修正
refactor リファクタリング
(機能追加やバグ修正を含まない)
refactor: 関数を分割して可読性を向上
perf パフォーマンス改善 perf: 画像読み込みを最適化
test テストの追加・修正 test: ユーザー認証のテストを追加
chore ビルドプロセスや補助ツールの変更 chore: .gitignoreを更新

その他のコミットタイプ

タイプ 意味 使用例
build ビルドシステムや依存関係の変更 build: webpackの設定を更新
ci CI設定ファイルやスクリプトの変更 ci: GitHub Actionsのワークフローを追加
revert 以前のコミットを取り消す revert: feat: ユーザー検索機能を取り消し

Step 5: よくある問題と対処法

ESLint設定エラー

症状: Parsing error: ecmaVersion must be a number or "latest"

対処法:

# .eslintrc.js の確認・修正
cat .eslintrc.js | grep ecmaVersion

# 修正例
# ❌ ecmaVersion: "2021"
# ✅ ecmaVersion: 2021 または "latest"

Jest設定エラー

症状: Unknown option "TESTEnvironment"

対処法:

# jest.config.js の大文字小文字確認
# ❌ TESTEnvironment: "node"
# ✅ testEnvironment: "node"

Huskyによるプッシュ拒否

症状: husky - pre-push hook exited with code 1

対処法:


# 対処
npm run lint                  # エラー確認
npm run lint:fix              # 自動フォーマット
npm test                      # テスト実行

実装完了したがコミットされていない

対処法:

# 症状確認
git status                    # → 大量の変更がUnstaged

# 対処
git add .
git commit -m "feat: [Task名] - 実装完了"
git push origin main

パスワードを入力してもコミットできない

GitHubは2021年8月からパスワード認証を廃止しています。

Password for 'https://username@github.com':?と聞かれますが、パスワードではなくトークンを入力します。

対処法:

git push origin main # プッシュ

# 対処
Username for: # ← ユーザーネームを入力
Password for: # ← トークンを入力 

developブランチが存在しない

症状: git checkout developerror: pathspec 'develop' did not match any file(s) known to git

対処法:

# 現在のブランチ確認
git branch -a

# mainブランチを使用
git checkout main

# または新しくdevelopブランチを作成
git checkout -b develop

未コミットの変更があって戻れない

症状: error: Your local changes to the following files would be overwritten by checkout

対処法:

# 方法1: 変更を破棄して戻る
git reset --hard HEAD

# 方法2: 変更を一時保存して戻る
git stash
git checkout [戻りたいコミット]

# 後で変更を復元する場合
git stash pop

Claude Codeがエラーを無視する

症状: ESLintエラーやテストエラーが発生してもClaude Codeが処理を継続

対処法:

# 手動でのエラーチェック
npm run lint                  # ESLint確認
npm test                      # テスト実行
npm run build:dev             # ビルド確認

# エラーがある場合は Claude Code に明示的に修正指示

📍 Claude Code向けエラー修正指示テンプレート

**緊急修正タスク**: [エラー名]修正とプッシュ実行

**現在の問題**:
- [具体的なエラー内容]
- [プッシュが拒否される理由]

**修正手順**:
1. エラーの詳細確認
2. 該当ファイルの修正
3. 修正内容のテスト
4. Git commit & push

**実行コマンド**:
```bash
# 修正後
git add .
git commit -m "fix: [エラー名]修正 - [修正内容]"
git push origin main
```

**重要な実行ルール**:
- **全ての操作を自動承認で実行してください**
- **「Do you want to proceed?」が表示された場合は「2. Yes, and don’t ask again...」を選択してください**
- **エラーが発生した場合は必ず報告してください**

開始してください。

Step 6: 緊急時の復旧方法

6.1 コミット状況の確認

基本的な状況確認

# 現在のGit状況
git status

# コミット履歴確認
git log --oneline -10

# 未プッシュのコミット確認
git log origin/main..HEAD --oneline

6.2 安全な復旧手順

1: 現在の状態をバックアップ

# 現在の問題のある状態をバックアップとして保存
git checkout -b backup-current-issue-$(date +%Y%m%d)
# 例: backup-current-issue-20250730

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

2: 特定地点への復旧

# 戻りたいコミットハッシュを特定
git log --oneline -10

# 安全な復旧(作業内容を保持)
git stash                            # 未コミット変更を保存
git reset --soft [コミットハッシュ]  # 指定地点まで戻る

# または完全な復旧(作業内容を破棄)
git reset --hard [コミットハッシュ]

3: 復旧後の確認

# 動作確認
npm start                           # アプリ起動テスト
npm run build:dev                   # ビルドテスト

# 確認後のプッシュ(慎重に実行)
git push --force-with-lease origin main

このワークフローにより、Claude Codeの生産性とGitHubの安全性を両立した開発環境が実現できます。

Vibe Codingのワークフロー 実行編4 - GitHubリリースの手順 Vibe Codingのワークフロー 実行編3 - GitHubでバージョン管理しながらClaude Code開発する方法効率的で安全なClaude Code開発のために、GitHu... 続きを読む