- Created workflow/github-development-workflow.md - Detailed timeline of when to use each GitHub feature - Real development scenarios from project start to deployment - Daily/weekly/monthly GitHub usage patterns - Troubleshooting and professional tips ユーザーからの質問「具体的に開発を進めるにあたって、githubをどのタイミングでどの機能をどのようにつかうのか」に対応 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
433 lines
No EOL
8.8 KiB
Markdown
433 lines
No EOL
8.8 KiB
Markdown
---
|
||
layout: default
|
||
title: "GitHub開発ワークフロー完全ガイド - いつ、何を、どう使うか"
|
||
description: "実際の開発でGitHubの各機能をどのタイミングで使うか、具体例で解説"
|
||
---
|
||
|
||
# 🚀 GitHub開発ワークフロー完全ガイド
|
||
|
||
実際の開発プロジェクトで、GitHubの機能をいつ、どのように使うのか、時系列で解説します。
|
||
|
||
---
|
||
|
||
## 📅 プロジェクト開始前(Day 0)
|
||
|
||
### 1. リポジトリ作成
|
||
```bash
|
||
# プロジェクト名を決めて作成
|
||
gh repo create my-awesome-app --public --add-readme
|
||
```
|
||
|
||
### 2. 初期設定
|
||
```yaml
|
||
# .github/ISSUE_TEMPLATE/bug_report.md
|
||
# .github/ISSUE_TEMPLATE/feature_request.md
|
||
# .github/pull_request_template.md
|
||
# .gitignore
|
||
# README.md
|
||
```
|
||
|
||
### 3. Project作成
|
||
```
|
||
GitHub → Projects → New project
|
||
├── 名前: "My App Development"
|
||
├── テンプレート: "Team backlog"
|
||
└── フィールド追加: Priority, Story Points, Sprint
|
||
```
|
||
|
||
### 4. 初期Issue作成
|
||
```markdown
|
||
Issue #1: プロジェクト初期設定
|
||
- [ ] 開発環境構築手順書作成
|
||
- [ ] コーディング規約決定
|
||
- [ ] CI/CD設定
|
||
|
||
Issue #2: 基本機能の要件定義
|
||
- [ ] ユーザーストーリー作成
|
||
- [ ] 画面設計
|
||
- [ ] API設計
|
||
```
|
||
|
||
---
|
||
|
||
## 🏃 開発開始(Week 1)
|
||
|
||
### 月曜日:スプリント計画
|
||
|
||
#### 9:00 - Project Boardで計画
|
||
```
|
||
1. Projectsを開く
|
||
2. BacklogからSprint 1に移動:
|
||
- Issue #3: ユーザー認証機能
|
||
- Issue #4: データベース設計
|
||
- Issue #5: ログイン画面UI
|
||
3. 各Issueにポイント設定
|
||
```
|
||
|
||
#### 10:00 - チーム割り当て
|
||
```markdown
|
||
# Issue #3 にコメント
|
||
@frontend-dev ログイン画面お願いします
|
||
@backend-dev 認証APIお願いします
|
||
期限: 金曜日まで
|
||
```
|
||
|
||
### 火曜日:開発作業
|
||
|
||
#### 9:00 - ブランチ作成
|
||
```bash
|
||
# 最新のmainを取得
|
||
git checkout main
|
||
git pull origin main
|
||
|
||
# 機能ブランチ作成
|
||
git checkout -b feature/user-authentication
|
||
```
|
||
|
||
#### 10:00 - 開発中
|
||
```bash
|
||
# こまめにコミット
|
||
git add src/components/LoginForm.jsx
|
||
git commit -m "feat: ログインフォームのUI実装 #3"
|
||
|
||
# 1日の終わりにPush
|
||
git push origin feature/user-authentication
|
||
```
|
||
|
||
#### 17:00 - Draft PR作成
|
||
```bash
|
||
# まだ完成していないけどPR作成
|
||
gh pr create --draft --title "WIP: ユーザー認証機能 #3"
|
||
```
|
||
|
||
### 水曜日:進捗確認
|
||
|
||
#### 10:00 - スタンドアップ(Projectsで確認)
|
||
```
|
||
Projects → Board View
|
||
├── To Do: 2件
|
||
├── In Progress: 3件 ← ここを確認
|
||
├── In Review: 0件
|
||
└── Done: 1件
|
||
```
|
||
|
||
#### 14:00 - Issue更新
|
||
```markdown
|
||
# Issue #3 にコメント
|
||
## 進捗報告
|
||
- ✅ ログインフォームUI完成
|
||
- ✅ バリデーション実装
|
||
- 🚧 API連携作業中
|
||
- ⏳ テスト作成予定
|
||
|
||
残タスク:
|
||
- [ ] エラーハンドリング
|
||
- [ ] ローディング表示
|
||
```
|
||
|
||
### 木曜日:コードレビュー
|
||
|
||
#### 10:00 - PR準備完了
|
||
```bash
|
||
# Draft から通常のPRに変更
|
||
gh pr ready
|
||
|
||
# PR説明を更新
|
||
```
|
||
|
||
```markdown
|
||
## 概要
|
||
ユーザー認証機能を実装しました。
|
||
|
||
## 変更内容
|
||
- ログインフォームコンポーネント
|
||
- 認証API(JWT使用)
|
||
- Reduxでの状態管理
|
||
|
||
## スクリーンショット
|
||

|
||
|
||
## テスト
|
||
- [x] ユニットテスト追加
|
||
- [x] E2Eテスト追加
|
||
- [x] 手動テスト完了
|
||
|
||
Closes #3
|
||
```
|
||
|
||
#### 14:00 - レビュー対応
|
||
```markdown
|
||
# PR上でのやり取り
|
||
@reviewer: 23行目、エラーハンドリングが不足していませんか?
|
||
|
||
@developer: 修正しました!確認お願いします。
|
||
commit: a1b2c3d
|
||
```
|
||
|
||
### 金曜日:マージとデプロイ
|
||
|
||
#### 10:00 - 最終確認
|
||
```yaml
|
||
# GitHub Actions が全て ✅ グリーン
|
||
- Build: ✅ Passed
|
||
- Test: ✅ Passed
|
||
- Lint: ✅ Passed
|
||
- Security: ✅ Passed
|
||
```
|
||
|
||
#### 11:00 - マージ
|
||
```
|
||
1. PR ページで "Squash and merge"
|
||
2. コミットメッセージを整理
|
||
3. "Confirm merge"
|
||
4. ブランチ自動削除
|
||
```
|
||
|
||
#### 11:30 - 自動デプロイ
|
||
```yaml
|
||
# .github/workflows/deploy.yml
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
|
||
# 自動的にステージング環境へデプロイ
|
||
```
|
||
|
||
#### 15:00 - スプリント振り返り
|
||
```markdown
|
||
# ProjectsでSprint 1を確認
|
||
完了: 8件
|
||
未完了: 2件 → 次スプリントへ
|
||
|
||
# 新しいDiscussion作成
|
||
タイトル: Sprint 1 振り返り
|
||
カテゴリ: Team Updates
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 日常的な開発サイクル
|
||
|
||
### 毎朝のルーティン(5分)
|
||
```bash
|
||
# 1. 最新を取得
|
||
git checkout main
|
||
git pull origin main
|
||
|
||
# 2. 自分のブランチを更新
|
||
git checkout feature/my-feature
|
||
git rebase main
|
||
|
||
# 3. GitHub通知確認
|
||
# - 自分へのメンション
|
||
# - レビューリクエスト
|
||
# - CI/CDの結果
|
||
```
|
||
|
||
### Issue駆動開発
|
||
```
|
||
1. Issue確認 → 今日やること決定
|
||
2. ブランチ作成 → feature/issue-番号
|
||
3. 開発 → コミットメッセージに #番号
|
||
4. PR作成 → Issueと自動リンク
|
||
5. マージ → Issue自動クローズ
|
||
```
|
||
|
||
### コミットのタイミング
|
||
```bash
|
||
# ❌ 悪い例:1日分をまとめてコミット
|
||
git add .
|
||
git commit -m "今日の作業"
|
||
|
||
# ✅ 良い例:機能単位でコミット
|
||
git add src/components/Button.jsx
|
||
git commit -m "feat(ui): カスタムボタンコンポーネント追加"
|
||
|
||
git add src/styles/button.css
|
||
git commit -m "style(ui): ボタンのスタイル追加"
|
||
|
||
git add tests/Button.test.js
|
||
git commit -m "test(ui): ボタンコンポーネントのテスト追加"
|
||
```
|
||
|
||
---
|
||
|
||
## 🚨 トラブル発生時
|
||
|
||
### バグ発見(緊急度:高)
|
||
```bash
|
||
# 1. Issue作成
|
||
gh issue create \
|
||
--title "🐛 決済処理でエラー発生" \
|
||
--label "bug,urgent,production" \
|
||
--assignee "@payment-team"
|
||
|
||
# 2. Hotfixブランチ
|
||
git checkout -b hotfix/payment-error
|
||
|
||
# 3. 修正 → テスト → PR
|
||
# 4. 緊急マージ(レビュー1人でOK)
|
||
```
|
||
|
||
### 機能追加リクエスト
|
||
```markdown
|
||
# Discussions で議論
|
||
カテゴリ: Ideas
|
||
タイトル: ダークモード対応について
|
||
|
||
# 合意が取れたらIssue化
|
||
Issue #45: ダークモード実装
|
||
ラベル: enhancement, ui, sprint-3
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 週次・月次の活動
|
||
|
||
### 週次レビュー(金曜日)
|
||
```
|
||
1. Projects確認
|
||
- 完了タスク数
|
||
- ベロシティ計算
|
||
- 来週の計画
|
||
|
||
2. Insights確認
|
||
- コード頻度
|
||
- コントリビューター統計
|
||
- PR/Issueの傾向
|
||
|
||
3. Wiki更新
|
||
- リリースノート
|
||
- 新機能のドキュメント
|
||
```
|
||
|
||
### 月次活動
|
||
```
|
||
1. マイルストーン設定
|
||
- 次月の大目標
|
||
- リリース計画
|
||
|
||
2. セキュリティレビュー
|
||
- Dependabot アラート確認
|
||
- セキュリティアドバイザリ
|
||
|
||
3. パフォーマンス分析
|
||
- Actions の実行時間
|
||
- ビルド時間の最適化
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 シチュエーション別ガイド
|
||
|
||
### 新機能開発
|
||
```
|
||
1. Discussion で提案
|
||
2. Issue 作成
|
||
3. Projects に追加
|
||
4. ブランチ → 開発 → PR
|
||
5. レビュー → マージ
|
||
6. Release 作成
|
||
```
|
||
|
||
### バグ修正
|
||
```
|
||
1. Issue でバグ報告
|
||
2. 再現確認
|
||
3. Hotfixブランチ
|
||
4. 修正 → テスト
|
||
5. 緊急PR → マージ
|
||
6. パッチリリース
|
||
```
|
||
|
||
### ドキュメント更新
|
||
```
|
||
1. Wiki 直接編集
|
||
または
|
||
2. docs/ フォルダで管理
|
||
3. PR でレビュー
|
||
4. GitHub Pages 自動更新
|
||
```
|
||
|
||
### 外部コントリビュータ
|
||
```
|
||
1. Fork してもらう
|
||
2. Contribution Guide 参照
|
||
3. PR 受け取り
|
||
4. レビュー & フィードバック
|
||
5. マージ or 修正依頼
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 プロのTips
|
||
|
||
### 1. ラベルの活用
|
||
```yaml
|
||
種類:
|
||
- bug: 不具合
|
||
- feature: 新機能
|
||
- docs: ドキュメント
|
||
|
||
優先度:
|
||
- P0: 今すぐ
|
||
- P1: 今週中
|
||
- P2: 今月中
|
||
|
||
状態:
|
||
- ready: 着手可能
|
||
- blocked: ブロック中
|
||
- needs-review: レビュー待ち
|
||
```
|
||
|
||
### 2. 自動化の極意
|
||
```yaml
|
||
# PR作成時に自動でProjectsに追加
|
||
# Issue作成時に自動でラベル付け
|
||
# マージ時に自動でデプロイ
|
||
# 定期的な依存関係更新
|
||
```
|
||
|
||
### 3. コミュニケーション
|
||
```markdown
|
||
# Issue/PRでの良いコメント
|
||
- 具体的な問題説明
|
||
- 再現手順
|
||
- 期待する結果
|
||
- スクリーンショット
|
||
- 関連リンク
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 成果の可視化
|
||
|
||
### GitHub Insights 活用
|
||
```
|
||
Code frequency: コード追加/削除の推移
|
||
Pulse: 週次/月次のアクティビティ
|
||
Contributors: 誰がどれだけ貢献したか
|
||
Traffic: リポジトリの人気度
|
||
```
|
||
|
||
### Projects の分析
|
||
```
|
||
- スプリント完了率
|
||
- 平均リードタイム
|
||
- サイクルタイム
|
||
- 未完了タスクの傾向
|
||
```
|
||
|
||
---
|
||
|
||
## 🎉 まとめ
|
||
|
||
GitHubを使った開発は、**Issue → Branch → Commit → PR → Merge** のサイクルが基本。
|
||
|
||
各機能を適切なタイミングで使うことで:
|
||
- 進捗が可視化される
|
||
- チーム連携がスムーズ
|
||
- 品質が保たれる
|
||
- 履歴が残る
|
||
|
||
まずは小さく始めて、徐々に機能を増やしていきましょう! |