mcpField
G
git-workflow

git-workflow

github.com/yonatangross開発30094 回インストール今日更新
リポジトリ

git-workflow について

git-workflowは、GitHub Flowのブランチ運用、アトミックコミット、復旧操作の手順を示すスキルです。開発チームがレビューしやすい履歴を保てるよう、必要に応じてルールやチェックリストを提供します。

主な機能

  1. 01GitHub Flowのブランチ運用ガイド
  2. 02アトミックコミットのチェックリスト
  3. 03対話的なステージング手順
  4. 04reflogを使った復旧ガイド
  5. 05スタックPRとリベースのルール
  6. 06必要に応じて参照するチェックリスト

活用シーン

  1. 01追跡中の作業用ブランチの作成
  2. 02変更をレビューしやすいコミットに分割
  3. 03reflogによるコミットやブランチの復旧
  4. 04依存関係のあるスタックPRの管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yonatangross/orchestkit --skill git-workflow

インストール後、Claude Code で/git-workflowを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

test-cases.json
checklists/
branch-checklist.md
pre-commit-checklist.md
references/
github-flow.md
interactive-staging.md
recovery-decision-tree.md
reflog-recovery.md
rules/
_sections.md
_template.md
branch-protection.md
history-hygiene.md
merge-strategy.md
monorepo-context.md
recovery-reflog.md
recovery-reset.md
recovery-stash.md
stacked-pr-rebase.md
stacked-pr-workflow.md

詳細

Git ワークフロー

GitHub Flow によるブランチ運用、アトミックコミット、復旧操作など、Git のワークフローのパターンを網羅します。クリーンでレビューしやすい履歴を維持するために不可欠です。

引数の解決

SUBCOMMAND = "$ARGUMENTS[0]"  # Optional subcommand, e.g., "recovery", "branch", "stacked"
# If no arguments, show full workflow reference.
# $ARGUMENTS is the full string (CC 2.1.59 indexed access)

ブランチの命名規則

# Feature branches (link to issue)
issue/<number>-<brief-description>
issue/123-add-user-auth

# When no issue exists
feature/<description>
fix/<description>
hotfix/<description>

ブランチのルール:

  1. main は常にデプロイ可能な状態にします
  2. main からブランチを作成し、main に戻す PR を作成します
  3. ブランチの存続期間は 1~3 日未満にします
  4. マージ後にブランチを削除します

アトミックコミットのチェックリスト

[ ] Does ONE logical thing
[ ] Leaves codebase working (tests pass)
[ ] Message doesn't need "and" in title
[ ] Can be reverted independently
[ ] Title < 50 chars, body wraps at 72
インタラクティブなステージング
# Stage changes hunk-by-hunk
git add -p

# Options:
# y - stage this hunk
# n - skip this hunk
# s - split into smaller hunks
# e - manually edit the hunk
# q - quit

# Review what's staged
git diff --staged    # What will be committed
git diff             # What won't be committed
コミットのパターン
# Separate concerns
git add -p && git commit -m "refactor: Extract database pool"
git add -p && git commit -m "feat(#456): Add query caching"

# Never combine unrelated changes
# BAD:  "feat: Add auth and fix formatting"
# GOOD: Two separate commits

復旧クイックリファレンス

セーフティネット
# ALWAYS check reflog first - it has everything
git reflog

# Shows ALL recent HEAD movements
# Even "deleted" commits live here for 90 days
よくある復旧シナリオ
シナリオプッシュ前プッシュ済み
コミットを取り消すgit reset --soft HEAD~1git revert HEAD
間違ったブランチcherry-pick + resetcherry-pick + revert
コミットを紛失したgit reset --hard HEAD@{N}該当なし
不適切なリベースgit rebase --abort または reflogreflog + force-with-lease
クイック復旧コマンド
# Undo last commit, keep changes staged
git reset --soft HEAD~1

# Find lost commits
git reflog | grep "your message"

# Recover to previous state
git reset --hard HEAD@{1}

# Safe force push (feature branches only)
git push --force-with-lease

標準的なワークフロー

# 1. Start fresh
git checkout main && git pull origin main
git checkout -b issue/123-my-feature

# 2. Work with atomic commits
git add -p
git commit -m "feat(#123): Add User model"

# 3. Stay updated
git fetch origin && git rebase origin/main

# 4. Push and PR
git push -u origin issue/123-my-feature
gh pr create --fill

# 5. Cleanup after merge
git checkout main && git pull
git branch -d issue/123-my-feature

アンチパターン

Avoid:
- Long-lived branches (> 1 week)
- Merging main into feature (use rebase)
- Direct commits to main
- Force push to shared branches
- Commits that need "and" in message
- Committing broken code

ベストプラクティスのまとめ

  1. main からブランチを作成する - 毎回、新しく始めます
  2. インタラクティブにステージングする - git add -p を使用します
  3. 1 コミットにつき 1 つの変更にする - 「そして」と言うなら、分けます
  4. マージではなくリベースする - 履歴をクリーンに保ちます
  5. まず reflog を確認する - 問題が発生したときに確認します
  6. Force-with-lease を使用する - force push より安全です
  7. マージ後に削除する - 古いブランチを残しません

関連スキル

  • ork:commit - 規約に沿った形式とコミット前の検証でコミットを作成します
  • git-recovery - reflog 操作を使って、よくある Git のミスから迅速に復旧します
  • stacked-prs - 依存関係のある PR を使った、大規模な機能開発向けの複数 PR 開発
  • ork:create-pr - 適切なフォーマットで包括的な PR を作成します

主な判断事項

判断事項選択理由
ブランチモデルGitHub Flowシンプルな単一ブランチのワークフローで、main は常にデプロイ可能です
マージ戦略マージよりリベース履歴をクリーンかつ直線的に保ち、二分探索を容易にします
ブランチの命名issue/-作業を追跡対象に関連付け、自動化を可能にします
コミットの粒度アトミック(1 つの変更)個別に取り消せて、履歴が明確になり、レビューも容易になります
強制プッシュ--force-with-lease のみ共有ブランチ上で他の人の作業を上書きするのを防ぎます

ルール

各カテゴリには、オンデマンドで読み込まれる個別のルールファイルが rules/ にあります。

カテゴリルール影響度主なパターン
ブランチ保護${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/branch-protection.mdCRITICAL保護されたブランチ、必須の PR ワークフロー
マージ戦略${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/merge-strategy.mdHIGHリベース優先、競合解決、force-with-lease
履歴の整理${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/history-hygiene.mdHIGHWIP のスカッシュ、fixup コミット、クリーンな履歴
復旧${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/recovery-reflog.mdCRITICAL紛失したコミットやブランチを reflog で復旧
復旧${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/recovery-reset.mdCRITICAL安全な reset モードと危険な reset モード
復旧${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/recovery-stash.mdHIGHstash の管理と、削除した stash の復旧
スタック型 PR${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/stacked-pr-workflow.mdHIGHスタックの計画、PR の作成、依存関係の追跡
スタック型 PR${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/stacked-pr-rebase.mdHIGHリベースの管理、force-with-lease、ターゲットの変更
モノレポ${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/rules/monorepo-context.mdMEDIUM--add-dir、サービスごとの CLAUDE.md、ワークスペースの検出

合計:6 カテゴリにわたる 9 個のルール

参考資料

必要に応じて、Read("${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/references/<file>") で読み込みます。

ファイル内容
github-flow.mdGitHub Flow のブランチ運用ガイド
interactive-staging.mdインタラクティブなステージングのパターン
reflog-recovery.mdReflog を使った復旧テクニック
recovery-decision-tree.md復旧シナリオの判断ツリー

チェックリスト

必要に応じて、Read("${CLAUDE_PLUGIN_ROOT}/skills/git-workflow/checklists/<file>") で読み込みます。

ファイル内容
branch-checklist.mdブランチ作成前の事前確認
pre-commit-checklist.mdコミット前の検証

コメント