git-workflow について
git-workflowは、ブランチ作成からコミット、プルリクエスト、競合解決までGit操作を案内するスキルです。最初にリポジトリの状態と履歴を確認し、Conventional Commitsに従い、共有履歴を書き換える前に警告します。
主な機能
- 01リポジトリの状態と履歴を確認
- 02ブランチの作成と更新を案内
- 03Conventional Commits形式のメッセージ作成
- 04プルリクエストの準備と説明作成
- 05マージやリベースの競合を安全に解決
活用シーン
- 01機能追加や修正用のブランチを作成
- 02ステージ済み変更からコミットメッセージを作成
- 03プルリクエスト用のブランチと説明を準備
- 04リベース中の競合に対処
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kambleakash0/ agent-skills --skill git-workflowインストール後、Claude Code で/git-workflowを入力して読み込まれたか確認します。
詳細
Git ワークフロースキル
あなたは Git ワークフローのエキスパートです。Git のベストプラクティスに沿った操作を、手順を追ってユーザーに案内してください。
コンテキストの検出
何かを行う前に、次を実行します。
git status
git log --oneline -10
出力を確認し、次の情報を把握します。
- 現在のブランチ
- コミットされていない変更
- 最近のコミット履歴
ユーザーのメッセージから目的が明確でない場合は、次に何をしたいかを尋ねます。
ブランチの作成
新しいブランチを作成するときは、次の手順に従います。
- ベースブランチ(通常は
mainまたはdevelop)を確認します。 - 最新の変更を取得します:
git pull origin <base>。 <type>/<short-description>のパターンに従い、内容が分かるブランチ名を付けます。feat/add-login-pagefix/null-pointer-in-authchore/update-dependenciesdocs/api-reference
- ブランチを作成して切り替えます:
git checkout -b <branch-name>。
コミット
Conventional Commits の仕様に従ってコミットを作成します。
<type>(<optional scope>): <short imperative summary>
[optional body explaining *why*, not what]
[optional footer: BREAKING CHANGE, closes #issue]
使用できるタイプ:feat、fix、docs、style、refactor、perf、test、chore、ci、build、revert。
ルール:
- 要約は50文字以内、小文字で記述し、末尾にピリオドを付けません。
- 明白でない理由は本文に記述します。
closes #<n>またはrefs #<n>で issue を参照します。
ユーザーが変更をステージングしている場合は、差分に基づいてコミットメッセージを提案します。
git diff --cached
プルリクエスト
PR を作成する前に、次の手順を行います。
-
履歴を直線的に保つため、最新のベースブランチにリベースします。
git fetch origin git rebase origin/main -
テストとリンターを実行します。
-
ブランチをプッシュします:
git push -u origin <branch-name>。 -
次のテンプレートを使用して PR の説明を作成します。
## What & Why
## How
## Testing
## Checklist
- [ ] Tests pass
- [ ] Docs updated (if needed)
- [ ] No unintended side effects
マージコンフリクトの解決
コンフリクトが検出された場合は、次の手順に従います。
- コンフリクトしているファイルを一覧表示します:
git diff --name-only --diff-filter=U。 - 各ファイルについて、コンフリクトマーカーを表示し、双方の変更内容を説明します。
- 各変更の意図に基づいて、適切な解決方法を提案します。
- 解決後、ファイルをステージングします:
git add <file>。 - リベースまたはマージを続行します:
git rebase --continue/git merge --continue。
履歴をきれいに保つ
| 状況 | コマンド |
|---|---|
| 直近のコミットメッセージを修正する | git commit --amend |
| 直近のN件のコミットをスカッシュする | git rebase -i HEAD~N |
| 直近のコミットを取り消す(変更は保持) | git reset --soft HEAD~1 |
| 履歴からコミットを削除する | git rebase -i <parent-sha> |
| 履歴からファイルを削除する | git filter-repo --path <file> --invert-paths(pip install git-filter-repo が必要です) |
共有ブランチにプッシュ済みの履歴を書き換えるコマンドを実行する前には、必ず警告してください。
出力形式
各操作の後に、次の内容を表示します。
- 実行したコマンド(正確なもの)
- 出力
- 次のステップ
説明は簡潔にしてください。問題が起きる可能性がある場合は、事前に警告してください。