feat: add practical GitHub development workflow guide
- 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>
This commit is contained in:
parent
99d3e4b78b
commit
7d5a432bbe
2 changed files with 439 additions and 0 deletions
6
index.md
6
index.md
|
|
@ -124,6 +124,12 @@ description: "外部ツールに依存せず、GitHub一つで開発業務を完
|
|||
<p>全GitHub機能の詳細解説とプロ向け活用法</p>
|
||||
<span class="new-badge">NEW</span>
|
||||
</a>
|
||||
|
||||
<a href="workflow/github-development-workflow.html" class="guide-link">
|
||||
<h4>🔄 開発ワークフロー</h4>
|
||||
<p>実際の開発でいつ・何を・どう使うか</p>
|
||||
<span class="new-badge">NEW</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## 🎓 学習の進め方
|
||||
|
|
|
|||
433
workflow/github-development-workflow.md
Normal file
433
workflow/github-development-workflow.md
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
---
|
||||
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** のサイクルが基本。
|
||||
|
||||
各機能を適切なタイミングで使うことで:
|
||||
- 進捗が可視化される
|
||||
- チーム連携がスムーズ
|
||||
- 品質が保たれる
|
||||
- 履歴が残る
|
||||
|
||||
まずは小さく始めて、徐々に機能を増やしていきましょう!
|
||||
Loading…
Add table
Add a link
Reference in a new issue