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>
|
<p>全GitHub機能の詳細解説とプロ向け活用法</p>
|
||||||
<span class="new-badge">NEW</span>
|
<span class="new-badge">NEW</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<a href="workflow/github-development-workflow.html" class="guide-link">
|
||||||
|
<h4>🔄 開発ワークフロー</h4>
|
||||||
|
<p>実際の開発でいつ・何を・どう使うか</p>
|
||||||
|
<span class="new-badge">NEW</span>
|
||||||
|
</a>
|
||||||
</div>
|
</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