diff --git a/FLOW.md b/FLOW.md deleted file mode 100644 index b529756..0000000 --- a/FLOW.md +++ /dev/null @@ -1,296 +0,0 @@ -# GitHub Development Flow Guide - -このガイドは、Git worktreeを活用した効率的な開発フローをまとめたものです。 - -## 📋 基本的な開発フロー - -### 1. 新規開発の流れ - -#### 計画フェーズ -1. **リポジトリの作成**: GitHub上でプロジェクト用のリポジトリを作成 -2. **ブランチ戦略の決定**: - - `main`: リリース可能な安定版 - - `develop`: 開発統合用ブランチ -3. **仕様書の作成**: README.mdに「何を」「なぜ」「誰のために」を記載 -4. **タスクの洗い出しと分解**: 数時間〜1日で完了できるレベルまで細分化 -5. **全タスクのIssue化**: GitHub Issuesに登録し、Projectsボードで管理 - -#### 開発フェーズ -```bash -# 1. Issueの選択 -# GitHub ProjectsでIssueを「進行中」に移動 - -# 2. worktreeでブランチ作成 -git worktree add -b feature/11-login-ui ../login-ui-work develop -cd ../login-ui-work - -# 3. 開発作業 -# コーディング作業 - -# 4. コミット (Conventional Commits形式) -git add . -git commit -m "feat: ログインフォームのUIコンポーネントを作成 #11" - -# 5. プッシュ -git push origin feature/11-login-ui -``` - -#### レビュー&統合フェーズ -1. **プルリクエストの作成**: GitHub上でPRを作成(`Closes #11`を含める) -2. **自動テストの実行**: GitHub Actionsが自動でテストを実行 -3. **コードレビュー**: レビュアーがコードを確認 -4. **マージ**: テストとレビューが完了したらマージ -5. **後片付け**: - ```bash - cd ../my-project - git worktree remove ../login-ui-work - git branch -d feature/11-login-ui - git push origin --delete feature/11-login-ui - ``` - -### 2. 機能追加の流れ - -#### 計画フェーズ -1. **機能要件の明確化**: What(何を)、Why(なぜ)、How(どのように)を定義 -2. **Issueの作成**: 要件、技術的検討事項、受け入れ条件を記載 -3. **ラベルとプロジェクトボードへの追加**: `feature`ラベル、優先度設定 -4. **タスクの分解**: 大きな機能はサブタスクに分割 - -#### 開発フェーズ -```bash -# 1. 最新のdevelopを取得 -cd ../my-project -git checkout develop -git pull origin develop - -# 2. 機能用の作業場を作成 -git worktree add -b feature/24-comment ../comment-work develop -cd ../comment-work - -# 3. 開発(小さなコミットを重ねる) -git commit -m "feat: コメント投稿フォームのUIを作成 #24" -git commit -m "test: コメント投稿APIのテストを追加 #24" - -# 4. 定期的なプッシュ -git push origin feature/24-comment -``` - -#### レビュー&テストフェーズ -1. **セルフレビュー**: 不要なコードの削除、フォーマット確認 -2. **プルリクエストの作成**: 変更内容、テスト方法、スクリーンショットを含める -3. **自動テストとCI/CD**: GitHub Actionsによる自動検証 -4. **コードレビュー**: 設計、可読性、テスト、パフォーマンス、セキュリティ -5. **フィードバック対応**: レビューコメントに基づく修正 - -### 3. バグ修正の流れ - -#### バグの分類 -- **Critical(緊急)**: サービス停止、データ損失の危険 → mainからhotfix -- **High(高)**: 主要機能の不具合 → developからbugfix -- **Medium/Low**: 限定的な影響 → developからbugfix - -#### 修正フロー -```bash -# 1. バグ報告のIssue作成(詳細な再現手順、期待動作、実際の動作、エラーログ) - -# 2. 緊急度に応じたブランチ作成 -# 緊急の場合 -git worktree add -b hotfix/28-critical-auth ../hotfix-auth main - -# 通常の場合 -git worktree add -b bugfix/27-login-validation ../bugfix-login develop - -# 3. バグの再現とテスト作成 -cd ../bugfix-login -# まず失敗するテストを書く -npm test -- --grep "email with plus sign" # 失敗を確認 - -# 4. 修正の実装(最小限の変更) -git commit -m "test: メールアドレスに+記号を含む場合のテストを追加 #27" -git commit -m "fix: メールアドレスの+記号を正しく処理するように修正 #27" - -# 5. 検証 -npm test # すべてのテストがパス -npm run dev # 手動確認 - -# 6. プッシュとPR -git push origin bugfix/27-login-validation -``` - -## 🔄 並列開発のパターン - -### 複数機能の同時開発 - -```bash -# 3つの機能を並行開発 -../feature-login/ # ログイン機能(localhost:3000) -../feature-profile/ # プロフィール機能(localhost:3001) -../feature-dashboard/ # ダッシュボード(localhost:3002) - -# 各ディレクトリで独立して開発サーバーを起動 -cd ../feature-login && npm run dev -cd ../feature-profile && npm run dev -- --port 3001 -cd ../feature-dashboard && npm run dev -- --port 3002 -``` - -### レビュー対応中の新規開発 - -```bash -# PR待ちの間に別の作業を開始 -../feature-A/ # レビュー待ち -../feature-B/ # 新規開発中 -../bugfix-C/ # 緊急修正 - -# レビューコメントが来たらすぐに切り替え -cd ../feature-A -# 修正対応 -git add . -git commit -m "fix: レビュー指摘事項を修正" -git push -``` - -## 🛠️ 便利なコマンド集 - -### worktree管理 - -```bash -# worktree一覧表示 -git worktree list - -# 不要なworktreeの削除 -git worktree prune - -# 特定のコミットからworktree作成 -git worktree add -b feature/test ../test-feature abc123def -``` - -### ブランチ管理 - -```bash -# リモートブランチの最新化 -git fetch --all --prune - -# マージ済みブランチの削除 -git branch --merged | grep -v "\*\|main\|develop" | xargs -n 1 git branch -d -``` - -## 📝 コミットメッセージ規約 - -### Conventional Commits形式 - -``` -(): - - - -