AgentSkillsCN

commit-push

将所有本地更改提交并推送到远程仓库

SKILL.md
--- frontmatter
name: commit-push
description: commit and push all local changes to remote repo
disable-model-invocation: true

Commit and Push

Commit all local changes following Conventional Commits format and push to remote.

Step 1: Gather Context

Run these commands in parallel to understand the changes:

bash
# See all untracked and modified files
git status

# See staged and unstaged changes
git diff
git diff --cached

# See recent commit messages for style reference
git log --oneline -10

Step 2: Analyze Changes

Review the changes and determine:

  • Type: What kind of change is this?

    • feat - New feature or capability
    • fix - Bug fix
    • docs - Documentation only
    • refactor - Code restructure without behavior change
    • test - Adding or updating tests
    • chore - Maintenance, dependency updates
    • perf - Performance improvement
    • ci - CI/CD changes
  • Scope: Which component is affected?

    • Examine the changed files and determine the appropriate scope
    • Use consistent scope names within the project (check git log for patterns)
    • (omit scope for cross-cutting changes)
  • Breaking: Does this break backward compatibility? If yes, add ! after scope.

Step 3: Write Commit Message

Format:

code
type(scope): description

[optional body explaining why, not what]

[optional footer with issue references]

Rules:

  • Use imperative mood: "add feature" not "added feature"
  • Keep first line under 72 characters
  • Focus on why in the body, the diff shows what
  • Reference issues: Closes #123 or Fixes #456

Step 4: Stage, Commit, and Push

bash
# Stage all changes (or selectively stage)
git add -A

# Commit with message (use HEREDOC for multi-line)
git commit -m "$(cat <<'EOF'
type(scope): description

Optional body explaining the motivation.

Closes #123

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

# Push to remote
git push

Examples

bash
# Simple feature
git commit -m "feat(api): add pagination support to list endpoints"

# Bug fix with body
git commit -m "$(cat <<'EOF'
fix(auth): handle token expiration during long requests

The previous implementation did not account for tokens expiring
during the processing of long-running requests.

Fixes #42

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

# Breaking change
git commit -m "$(cat <<'EOF'
feat!(api): change response format for user endpoints

BREAKING CHANGE: The `status` field is now an object with `state` and
`message` properties instead of a plain string.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

Step 5: Verify

After pushing, run git status to confirm the working tree is clean and the branch is up to date with remote.