git-commit · v1.0.0 · 2026-01-13 · sha256 7382718fb5817ffb

git-commit v1.0.0A

Immutable. This exact content is served forever at /api/v1/blob/7382718fb5817ffb.

---
name: git-commit
description: Use this skill when user asks to "commit changes", "create a commit", "stage and commit", or wants help with git commit workflow.
version: 1.0.0
allowed-tools: [Read, Bash, Glob, Grep]
---

# Git Commit

Create well-structured git commits with conventional commit messages based on staged changes.

## Parameters

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Optional commit message override"
    },
    "type": {
      "type": "string",
      "enum": ["feat", "fix", "docs", "style", "refactor", "test", "chore"],
      "description": "Conventional commit type",
      "default": "auto"
    },
    "scope": {
      "type": "string",
      "description": "Optional scope for the commit"
    }
  }
}
```

## When to Use

- User asks to "commit" changes
- User wants to "save" their work to git
- User asks for help with commit messages
- User wants to stage and commit files

## Methodology

### Phase 1: Status Check
- Run `git status` to see current state
- Run `git diff --staged` to see staged changes
- Run `git diff` to see unstaged changes
- Check recent commit history for message style

### Phase 2: Analysis
1. **Categorize Changes**: Identify what changed (new files, modifications, deletions)
2. **Determine Type**: Is this a feature, fix, refactor, etc.?
3. **Identify Scope**: What component/module is affected?
4. **Summarize Purpose**: What does this change accomplish?

### Phase 3: Commit Creation
- Stage relevant files if not already staged
- Generate conventional commit message
- Execute the commit
- Verify success with `git status`

### Phase 4: Output
Report:
- What was committed
- The commit message used
- The new commit hash

## Guidelines

- Follow Conventional Commits format: `type(scope): description`
- Keep subject line under 72 characters
- Use imperative mood ("Add feature" not "Added feature")
- Don't commit sensitive files (.env, credentials, etc.)
- Don't use --force or --amend unless explicitly requested
- Include meaningful description of WHY, not just WHAT

## Examples

### Example 1: Auto Commit

**User Input**: "Commit my changes"

**Expected Behavior**:
1. Run `git status` and `git diff` to understand changes
2. Analyze the nature of changes
3. Generate appropriate commit message
4. Stage files if needed
5. Create commit and report success

### Example 2: Specific Type

**User Input**: "创建一个 fix 类型的 commit"

**Expected Behavior**:
1. 检查当前的改动
2. 确认这些改动符合 "fix" 类型
3. 生成格式为 `fix(scope): 描述` 的提交信息
4. 执行提交并报告结果