commit-push
by anderskev
commit and push all local changes to remote repo
安装
claude skill add --url https://github.com/openclaw/skills文档
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 capabilityfix- Bug fixdocs- Documentation onlyrefactor- Code restructure without behavior changetest- Adding or updating testschore- Maintenance, dependency updatesperf- Performance improvementci- 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 logfor 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 #123orFixes #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.