Files
tiennm99 00d6bb117b feat: add ClaudeKit configuration
Add agent definitions, slash commands, hooks, and settings for
Claude Code project tooling.
2026-04-12 10:02:12 +07:00

1.9 KiB

description, category, allowed-tools
description category allowed-tools
Intelligently push commits to remote with safety checks and insights workflow Bash(git:*), Task

Push commits to remote repository with appropriate safety checks and branch management.

Git Expert Integration

For complex push scenarios (force push requirements, diverged branches, upstream conflicts, protected branch workflows), consider using the Task tool with git-expert subagent for specialized git expertise.

Efficiency Note:

Be concise. Use single bash calls where possible. Skip verbose explanations and intermediate status messages. Execute the push directly if safe, show only the result.

Instructions for Claude:

  1. Run safety checks in a single bash call: !git status --porcelain=v1 && echo "---" && git branch -vv | grep "^*" && echo "---" && git remote -v | head -2 && echo "---" && git log --oneline @{u}..HEAD 2>/dev/null

Parse output to check:

  • Any uncommitted changes (warn if present)
  • Current branch and tracking info
  • Remote repository URL
  • Commits to be pushed
  1. If safe to push (no uncommitted changes), execute push immediately:

    • For tracked branch: git push
    • For new branch: git push -u origin [branch-name]
    • If behind remote: Stop and suggest git pull --rebase
  2. Show only the final result:

    • If successful: Show the push output with emoji and success message
    • If failed: Show error and suggest fix
    • If unsafe: Show what needs to be done first
  3. Special cases to handle:

    • Diverged branches: Suggest rebase or merge strategy
    • No upstream branch: Use -u flag
    • Force push needed: Warn strongly, require confirmation
    • Protected branch: Remind about PR workflow

Example concise output:

  • Skip: "Let me check if it's safe to push"
  • Skip: "I'll analyze your branch status"
  • Skip: "Ready to push X commits"
  • Skip: "Executing push..."
  • Just show the push result directly