git-helper
Git 操作輔助,提供 commit message 規範、分支策略與 PR 指引
When & Why to Use This Skill
Git Helper is a comprehensive version control assistant designed to streamline and standardize the development workflow. It automates the creation of Conventional Commit messages, suggests optimal branching strategies, and generates structured Pull Request templates. By analyzing code changes and providing guided Git commands, it helps teams maintain a clean, professional, and traceable project history while reducing the cognitive load of manual repository management.
Use Cases
- Automated Commit Message Generation: Analyzes staged changes (git diff) to produce precise, Conventional Commit-compliant messages that clearly describe the 'what' and 'why' of a change.
- Standardized Pull Request Creation: Generates detailed PR descriptions including summaries, change lists, and test plans to facilitate faster and more effective code reviews.
- Workflow & Branching Strategy: Provides guidance on branch naming conventions (feature/, fix/, refactor/) and merging workflows to keep the repository organized and scalable.
- Milestone & Release Management: Assists in bundling multiple changes into cohesive commits or PRs when reaching project milestones, ensuring all documentation and metadata are included.
- Best Practice Enforcement: Ensures every commit follows team standards, including mandatory Co-Authored-By tags and avoiding dangerous operations like force pushes.
| name | git-helper |
|---|---|
| version | 1.0.0 |
| description | "準備建立 Pull Request" |
| author | miles990 |
| - name | next_action |
| type | string |
| required | false |
| - pattern | "建立 PR" |
Git Helper
分析變更 → 產出 commit message → 執行 git 操作
核心理念
┌─────────────────────────────────────────────────────────────────┐
│ 清晰的 git 歷史是專案的寶貴資產 │
│ │
│ 本 Skill 職責: │
│ • 產出規範的 commit message │
│ • 建議分支策略 │
│ • 協助建立 PR │
│ • 維護清晰的 git 歷史 │
└─────────────────────────────────────────────────────────────────┘
Commit Message 規範
Conventional Commits 格式
<type>(<scope>): <description>
[optional body]
[optional footer]
Type 類型
| Type | 說明 | 範例 |
|---|---|---|
feat |
新功能 | feat(auth): add login API |
fix |
Bug 修復 | fix(ui): correct button alignment |
docs |
文件更新 | docs: update README |
style |
格式調整 | style: format code |
refactor |
重構 | refactor(api): extract helper |
test |
測試 | test: add user tests |
chore |
雜項 | chore: update deps |
Commit Message 產生流程
┌─────────────────────────────────────────────────────────────────┐
│ 1. 分析變更 │
│ → git diff --staged │
│ → 識別變更類型和範圍 │
│ │
│ 2. 判斷 type │
│ → 新增功能?修復 bug?重構? │
│ │
│ 3. 判斷 scope │
│ → 哪個模組受影響? │
│ │
│ 4. 撰寫 description │
│ → 簡潔說明「做了什麼」 │
│ │
│ 5. 加入 footer │
│ → Co-Authored-By 標記 │
└─────────────────────────────────────────────────────────────────┘
Commit 範例
Milestone 完成
git commit -m "$(cat <<'EOF'
feat(M2): 完成核心 UI 元件
- 2.1 建立 TodoList 元件
- 2.2 建立 TodoItem 元件
- 2.3 實作基本樣式
驗收:靜態列表可正確顯示
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
Bug 修復
git commit -m "$(cat <<'EOF'
fix(api): 修正用戶驗證失敗問題
問題:登入時偶爾出現 401 錯誤
原因:token 過期檢查邏輯錯誤
解法:修正過期時間比較運算
Fixes #123
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
分支策略
Git Flow 簡化版
main ─────────────────────────────────────────────►
│ ↑
└─── feature/xxx ─── PR ─── merge ───┘
分支命名
| 類型 | 格式 | 範例 |
|---|---|---|
| 功能 | feature/描述 | feature/add-login |
| 修復 | fix/issue-號碼 | fix/issue-123 |
| 重構 | refactor/描述 | refactor/api-layer |
Pull Request 模板
## Summary
<1-3 bullet points>
## Changes
- 變更 1
- 變更 2
## Test Plan
- [ ] 單元測試通過
- [ ] 手動測試完成
## Screenshots (if applicable)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
最小範例
用戶:提交這些變更
AI:
1. 分析 git diff
2. 識別:新增了 TodoList 元件
建議 commit:
┌─────────────────────────────────────────────────────┐
│ 📝 Commit Message │
│ │
│ feat(ui): 新增 TodoList 元件 │
│ │
│ - 建立 TodoList.jsx │
│ - 建立 TodoList.css │
│ - 實作基本列表渲染 │
│ │
│ 🤖 Generated with Claude Code │
│ Co-Authored-By: Claude <noreply@anthropic.com> │
└─────────────────────────────────────────────────────┘
要執行這個 commit 嗎?
與其他 Skill 的協作
┌─────────────────────────────────────────────────────────────────┐
│ 在工作流程中的位置 │
│ │
│ [實作] → [test-helper] → [code-reviewer] → [git-helper] │
│ ↓ │
│ commit & push │
│ ↓ │
│ 建立 PR │
└─────────────────────────────────────────────────────────────────┘
安全規則
┌─────────────────────────────────────────────────────────────────┐
│ ❌ 禁止: │
│ • 不更新 git config │
│ • 不執行 force push │
│ • 不執行 hard reset │
│ • 不跳過 hooks (--no-verify) │
│ │
│ ✅ 必須: │
│ • 每次 commit 前確認變更內容 │
│ • 包含 Co-Authored-By 標記 │
│ • 遵循 Conventional Commits 格式 │
└─────────────────────────────────────────────────────────────────┘
設計原則
- 清晰歷史 - commit message 要有意義
- 小步提交 - 一個 commit 做一件事
- 可追溯 - 能從 commit 找到對應的需求
- 規範一致 - 團隊使用統一格式
- 安全優先 - 不執行危險操作
限制與邊界
- 不執行 force push、hard reset 等危險操作
- 需要用戶確認後才執行 commit
- 複雜的 merge conflict 需要人工處理
- 不自動推送到遠端(除非用戶明確要求)