Skip to content

Phase 1-1: ブランチ戦略とバックアップ #60

@oumelab

Description

@oumelab

Phase 1-1: ブランチ戦略とバックアップ

📋 概要

Vercel Edge Functions対応とモノレポ構成への移行に向けて、既存のCloudflare版(main)を保護しながら作業用ブランチを作成する。

🎯 目的

  • mainブランチの完全保護
  • フォークユーザーへの影響ゼロを保証
  • 段階的な実装のためのブランチ戦略確立
  • 万が一の際の復元ポイント作成

🌳 作成するブランチ構成

main                              # Cloudflare版(既存・保護)
├── フォークユーザーに影響なし
└── 既存のセットアップ手順そのまま

backup-before-monorepo            # バックアップ(念のため)
└── 移行前の完全なスナップショット

monorepo-structure                # モノレポ統合版(新規作業用)
├── Cloudflare + Vercel両対応
└── 比較検証用

✅ 実装タスク

1. バックアップブランチ作成

  • 現在のmainブランチの最新状態を取得
    git checkout main
    git pull origin main
  • バックアップブランチ作成
    git checkout -b backup-before-monorepo
    git push origin backup-before-monorepo
  • バックアップが正しく作成されたことを確認

2. 作業用ブランチ作成

  • モノレポ構成用ブランチ作成
    git checkout main
    git checkout -b monorepo-structure
    git push origin monorepo-structure

3. GitHubブランチ保護設定

  • GitHub Settings → Branches → Branch protection rules
  • mainブランチに以下を設定:
    • Require a pull request before merging
    • Require approvals (1)
    • Require status checks to pass before merging
    • Require branches to be up to date before merging

4. README.mdの更新

  • mainブランチのREADME.mdに他バージョンへのリンク追加
    ## 📦 Available Versions
    
    このプロジェクトは複数のバージョンがあります:
    
    ### 🟦 Cloudflare Pages版(安定版・推奨)
    **Branch:** `main`  
    **Status:** ✅ Stable  
    **Demo:** https://demo-react-event-calendar.pages.dev
    
    このブランチをクローンしてください:
    \`\`\`bash
    git clone https://github.com/oumelab/demo-react-event-calendar.git
    \`\`\`
    
    ### 🏗️ Monorepo版(Cloudflare + Vercel両対応)
    **Branch:** `monorepo-structure`  
    **Status:** 🚧 In Development
    
    モノレポ版を試したい場合:
    \`\`\`bash
    git clone -b monorepo-structure https://github.com/oumelab/demo-react-event-calendar.git
    \`\`\`

5. CONTRIBUTING.md作成

  • ルートにCONTRIBUTING.md作成
    # Contributing Guide
    
    ## ブランチ戦略
    
    - `main`: Cloudflare版(本番・保護)
    - `monorepo-structure`: モノレポ統合版(開発中)
    - `backup-before-monorepo`: バックアップ
    
    ## 開発フロー
    
    1. `monorepo-structure`から機能ブランチを作成
    2. 実装・テスト
    3. `monorepo-structure`へPull Request
    4. レビュー後マージ
    
    ## mainブランチについて
    
    mainブランチは既存のCloudflare版として保護されています。
    フォークユーザーへの影響を避けるため、直接の変更は行いません。

6. 動作確認

  • backup-before-monorepoブランチでビルド成功を確認
    git checkout backup-before-monorepo
    bun install
    bun run build
  • mainブランチが変更されていないことを確認
    git checkout main
    git diff backup-before-monorepo
    # → 差分がないことを確認

🧪 テスト・確認項目

ブランチの確認

  • git branch -aで3つのブランチが表示される
    • main
    • backup-before-monorepo
    • monorepo-structure
  • すべてのブランチがリモートにプッシュされている

保護設定の確認

  • GitHubでmainブランチのSettings → Branchesを確認
  • 保護ルールが正しく適用されている
  • 直接プッシュができないことを確認(テストプッシュ不要)

ビルドの確認

  • backup-before-monorepoブランチ
    git checkout backup-before-monorepo
    bun run build
    # → 成功することを確認
  • mainブランチ
    git checkout main
    bun run build
    # → 成功することを確認(変更なし)

ドキュメントの確認

  • README.mdにブランチ説明が追加されている
  • CONTRIBUTING.mdが作成されている
  • 内容に誤字・脱字がない

✅ 受け入れ基準

  • backup-before-monorepoブランチが作成され、リモートにプッシュされている
  • monorepo-structureブランチが作成され、リモートにプッシュされている
  • mainブランチに保護設定が適用されている
  • README.mdにブランチ説明が追加されている
  • CONTRIBUTING.mdが作成されている
  • すべてのブランチでビルドが成功する
  • mainブランチに一切の変更がない

🔧 トラブルシューティング

ブランチ作成に失敗する場合

# リモートの最新状態を取得
git fetch origin

# ローカルブランチを削除して再作成
git branch -D monorepo-structure
git checkout -b monorepo-structure origin/main

保護設定が適用できない場合

  • リポジトリのSettings → Branchesに移動
  • "Add rule"または既存のルールを編集
  • Branch name patternにmainを入力
  • 必要な保護オプションにチェック

📝 備考

🔗 関連情報


開始前チェック: mainブランチがクリーンな状態であることを確認
完了後: 次のIssue(Turborepo導入)に進む準備完了

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions