Git Worktree 実使用例
実際のプロジェクトで Git Worktree を活用する具体的な例を通じて、実務適用方法を学びましょう。
目次
単一 SPEC 開発
シナリオ: ユーザー認証システム実装
ステップ 1: SPEC 計画 (Terminal 1)
# プロジェクトルートで
$ cd /Users/goos/MoAI/moai-project
# SPEC 計画作成
> /moai plan "JWT ベースユーザー認証システム実装" --worktree
# 出力
✓ MoAI-ADK SPEC Manager v2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SPEC 分析中...
- 機能要件: 8 個発見
- 技術要件: 5 個発見
- API エンドポイント: 6 個識別
SPEC ドキュメント作成中...
✓ .moai/specs/SPEC-AUTH-001/spec.md
✓ .moai/specs/SPEC-AUTH-001/requirements.md
✓ .moai/specs/SPEC-AUTH-001/api-design.md
Worktree 作成中...
✓ ブランチ作成: feature/SPEC-AUTH-001
✓ Worktree 作成: /Users/goos/MoAI/moai-project/.moai/worktrees/SPEC-AUTH-001
✓ ブランチ切り替え完了
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
次のステップ:
1. 新しいターミナルで実行: moai worktree go SPEC-AUTH-001
2. LLM 変更: moai glm
3. Claude 起動: claude
4. 開発開始: /moai run SPEC-AUTH-001
コスト削減ヒント: 実装フェーズでは 'moai glm' で 70% コスト削減!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ステップ 2: Worktree 入り及び実装 (Terminal 2)
# 新しいターミナルを開く
$ moai worktree go SPEC-AUTH-001
# 新しいターミナルが開き Worktree に移動
# プロンプトが変更される
(SPEC-AUTH-001) ~/moai-project/.moai/worktrees/SPEC-AUTH-001
# LLM を低コストモデルに変更
(SPEC-AUTH-001) $ moai glm
✓ LLM 変更: GLM 5 (70% コスト削減)
# Claude Code 起動
(SPEC-AUTH-001) $ claude
Claude Code v1.0.0
Type 'help' for available commands
# DDD 実装開始
> /moai run SPEC-AUTH-001
# 出力
✓ MoAI-ADK DDD Executor v2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 1: ANALYZE
✓ 要件分析完了
✓ 既存コード分析完了
✓ テストカバレッジ: 85% 目標
Phase 2: PRESERVE
✓ キャラクタライズテスト 12 個作成
✓ 既存動作保存確認
Phase 3: IMPROVE
✓ JWT 認証ミドルウェア実装
✓ リフレッシュトークンローテーション実装
✓ ログアウトトークン無効化実装
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
実装完了!
- コミット: 4f3a2b1 (feat: JWT authentication middleware)
- コミット: 7c8d9e0 (feat: refresh token rotation)
- コミット: 2a1b3c4 (feat: token invalidation on logout)
次のステップ:
1. テスト実行: pytest tests/auth/
2. ドキュメント化: /moai sync SPEC-AUTH-001
3. 完了: moai worktree done SPEC-AUTH-001
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ステップ 3: ドキュメント化 (同じ Terminal 2)
# ドキュメント化実行
> /moai sync SPEC-AUTH-001
# 出力
✓ MoAI-ADK Documentation Generator v2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ドキュメント作成中...
✓ API ドキュメント: docs/api/auth.md
✓ アーキテクチャ図: docs/diagrams/auth-flow.mmd
✓ ユーザーガイド: docs/guides/authentication.md
コミット完了:
✓ b5e6f7a (docs: authentication documentation)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ドキュメント化完了!
次のステップ: moai worktree done SPEC-AUTH-001 --push
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ステップ 4: 完了及びマージ (Terminal 1)
# プロジェクトルートに戻って
$ cd /Users/goos/MoAI/moai-project
# Worktree 完了
$ moai worktree done SPEC-AUTH-001 --push
# 出力
✓ MoAI-ADK Worktree Manager v2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Worktree 完了中: SPEC-AUTH-001
1. main ブランチに切り替え...
✓ Switched to branch 'main'
2. feature ブランチマージ...
✓ Merge 'feature/SPEC-AUTH-001' into main
3. リモートリポジトリにプッシュ...
✓ github.com:username/repo.git
✓ Branch 'main' set up to track remote branch 'main'
4. Worktree クリ...
✓ Worktree 削除: .moai/worktrees/SPEC-AUTH-001
✓ ブランチ削除: feature/SPEC-AUTH-001
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ SPEC-AUTH-001 完了!
総コミット: 4 個
- 2e9b4c3 docs: authentication documentation
- 7c8d9e0 feat: refresh token rotation
- 4f3a2b1 feat: JWT authentication middleware
- b5e6f7a feat: token invalidation on logout
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━並列 SPEC 開発
シナリオ: 3 つの SPEC 同時開発
Terminal 1: 計画 (すべての SPEC)
# SPEC 1: 認証
> /moai plan "JWT 認証システム" --worktree
✓ SPEC-AUTH-001 作成完了
# SPEC 2: ログ
> /moai plan "構造化されたログシステム" --worktree
✓ SPEC-LOG-002 作成完了
# SPEC 3: API
> /moai plan "REST API v2" --worktree
✓ SPEC-API-003 作成完了
# Worktree 確認
moai worktree list
SPEC-AUTH-001 feature/SPEC-AUTH-001 /path/to/SPEC-AUTH-001
SPEC-LOG-002 feature/SPEC-LOG-002 /path/to/SPEC-LOG-002
SPEC-API-003 feature/SPEC-API-003 /path/to/SPEC-API-003Terminal 2: AUTH-001 実装
$ moai worktree go SPEC-AUTH-001
(SPEC-AUTH-001) $ moai glm
(SPEC-AUTH-001) $ claude
> /moai run SPEC-AUTH-001
# ... 実装進行中 ...Terminal 3: LOG-002 実装
$ moai worktree go SPEC-LOG-002
(SPEC-LOG-002) $ moai glm
(SPEC-LOG-002) $ claude
> /moai run SPEC-LOG-002
# ... 実装進行中 ...Terminal 4: API-003 実装
$ moai worktree go SPEC-API-003
(SPEC-API-003) $ moai glm
(SPEC-API-003) $ claude
> /moai run SPEC-API-003
# ... 実装進行中 ...並列進行状況モニタリング
# Terminal 1 ですべての Worktree 状態確認
$ moai worktree status --verbose
Worktree: SPEC-AUTH-001
Branch: feature/SPEC-AUTH-001
Status: 3 commits ahead of main
LLM: GLM 5
Last activity: 5 minutes ago
Worktree: SPEC-LOG-002
Branch: feature/SPEC-LOG-002
Status: 2 commits ahead of main
LLM: GLM 5
Last activity: 3 minutes ago
Worktree: SPEC-API-003
Branch: feature/SPEC-API-003
Status: 4 commits ahead of main
LLM: GLM 5
Last activity: 7 minutes agoチーム協働シナリオ
シナリオ: 2 名の開発者協働
開発者 A: Frontend 開発
# 開発者 A のマシンで
git clone https://github.com/team/project.git
cd project
# Frontend SPEC 作成
> /moai plan "ログイン UI コンポーネント" --worktree
✓ SPEC-FE-001 作成
# Worktree で開発
moai worktree go SPEC-FE-001
(SPEC-FE-001) $ moai glm
(SPEC-FE-001) $ claude
> /moai run SPEC-FE-001
# 実装完了後 リモートにプッシュ
(SPEC-FE-001) $ exit
moai worktree done SPEC-FE-001 --push
✓ 完了及び PR 作成済み開発者 B: Backend 開発
# 開発者 B のマシンで
git clone https://github.com/team/project.git
cd project
# Backend SPEC 作成
> /moai plan "認証 API サービス" --worktree
✓ SPEC-BE-001 作成
# Worktree で開発
moai worktree go SPEC-BE-001
(SPEC-BE-001) $ moai glm
(SPEC-BE-001) $ claude
> /moai run SPEC-BE-001
# 実装完了後 リモートにプッシュ
(SPEC-BE-001) $ exit
moai worktree done SPEC-BE-001 --push
✓ 完了及び PR 作成済みPR マージ及び統合
# チームリードまたは CI システムで
gh pr list
# FE-001 Login UI Component Ready
# BE-001 Authentication API Service Ready
# PR マージ
gh pr merge FE-001 --merge
gh pr merge BE-001 --merge
# すべての開発者が最新状態を維持
git pull origin main問題解決事例
事例 1: マージ衝突解決
$ moai worktree done SPEC-AUTH-001 --push
# 出力
✗ マージ衝突が発生!
衝突ファイル:
- src/auth/jwt.ts
- tests/auth.test.ts
解決ステップ:
1. 衝突ファイルを編集して解決
2. git add <ファイル>
3. git commit
4. moai worktree done SPEC-AUTH-001 --push 再実行解決プロセス:
# 衝突解決
cd .moai/worktrees/SPEC-AUTH-001
code src/auth/jwt.ts
# 衝突マーカー確認
<<<<<<< HEAD
const secret = process.env.JWT_SECRET;
=======
const secret = config.jwt.secret;
>>>>>>> feature/SPEC-AUTH-001
# 手動でマージ
const secret = process.env.JWT_SECRET || config.jwt.secret;
# staging 後コミット
git add src/auth/jwt.ts
git commit -m "fix: resolve merge conflict in JWT config"
# 完了再試行
cd /Users/goos/MoAI/moai-project
moai worktree done SPEC-AUTH-001 --push
✓ 完了!事例 2: Worktree 破損復旧
$ moai worktree go SPEC-AUTH-001
✗ Worktree が破損しています。
# 診断
$ moai worktree status SPEC-AUTH-001
✗ Worktree ディレクトリが存在しません
# 復旧
$ moai worktree remove SPEC-AUTH-001 --force
✓ 既存 Worktree 削除
$ moai worktree new SPEC-AUTH-001
✓ Worktree 再作成完了事例 3: ディスク容量不足
$ df -h
Filesystem Size Used Avail Use%
/dev/disk1 500G 480G 20G 96%
# 古い Worktree 掃除
$ moai worktree clean --older-than 14
# 掃除される Worktree:
- SPEC-OLD-001 (30日前)
- SPEC-OLD-002 (45日前)
- SPEC-OLD-003 (60日前)
継続しますか? [y/N] y
✓ 3 つの Worktree 掃除完了
✓ 12GB ディスク容量確保実際のプロジェクトワークフロー
完全な開発サイクル例
成功事例
事例: スタートアップでの適用
# 状況: 3 つの機能を同時に開発が必要
# 時間: 1 週間
# 開発者: 2 名
# 1 日目: すべての SPEC 計画
> /moai plan "ユーザー管理" --worktree
> /moai plan "決済システム" --worktree
> /moai plan "通知システム" --worktree
# 2-4 日目: 並列実装
# Terminal 1: ユーザー管理
$ moai worktree go SPEC-USER-001 && moai glm
# Terminal 2: 決済システム
$ moai worktree go SPEC-PAY-001 && moai glm
# Terminal 3: 通知システム
$ moai worktree go SPEC-NOTIF-001 && moai glm
# 5-6 日目: ドキュメント化及びテスト
# 各 Worktree で /moai sync 実行
# 7 日目: マージ
$ moai worktree done SPEC-USER-001 --push
$ moai worktree done SPEC-PAY-001 --push
$ moai worktree done SPEC-NOTIF-001 --push
# 結果
# - 3 つの機能すべて完了
# - 並列開発で時間短縮 66%
# - GLM 使用でコスト削減 70%ヒントとコツ
ヒント 1: ターミナル管理
# tmux を使用してセッション管理
tmux new-session -d -s spec-user 'moai worktree go SPEC-USER-001'
tmux new-session -d -s spec-pay 'moai worktree go SPEC-PAY-001'
# セッション一覧
tmux ls
spec-user: 1 windows
spec-pay: 1 windows
# セッション切り替え
tmux attach-session -t spec-userヒント 2: 進行状況追跡
# すべての Worktree 進行状況
for spec in $(moai worktree list --porcelain | awk '{print $1}'); do
echo "=== $spec ==="
cd ~/.moai/worktrees/$spec
git log --oneline -5
echo ""
doneヒント 3: 自動化スクリプト
#!/bin/bash
# auto-workflow.sh
SPEC_ID=$1
echo "1. SPEC 計画作成..."
> /moai plan "$2" --worktree
echo "2. Worktree 進入..."
moai worktree go $SPEC_ID
echo "3. LLM 変更..."
moai glm
echo "4. Claude 起動..."
claude
# 使用法
# ./auto-workflow.sh SPEC-AUTH-001 "認証システム"関連ドキュメント
Last updated on