Git-hex Branch Cleanup
When to use this Skill
This skill should be used when:
- •The user says they want to "clean up", "rewrite", "polish", or "squash" a git history or feature branch.
- •The user wants to rebase a branch onto another branch (e.g.
main) and present a clean, reviewable set of commits. - •The user wants to split, squash, or reword commits using git-hex tools instead of manual interactive rebase.
Trigger phrases include: "clean up my commits", "squash fixups", "polish history", "rewrite commits", "rebase onto main", "make this branch reviewable".
Workflow
- •
Plan first
- •Call
git-hex-getRebasePlanto inspect the commit range you would modify. - •Optionally call
git-hex-checkRebaseConflictsto estimate whether the rebase is likely to conflict.
- •Call
- •
Prepare changes
- •For small edits to the last commit, prefer
git-hex-amendLastCommit. - •For fixes to older commits, guide the user to edit and stage changes, then
use
git-hex-createFixuptargeting the original commit. - •For large or mixed commits, consider
git-hex-splitCommitto separate files into focused commits.
- •For small edits to the last commit, prefer
- •
Apply the rewrite
- •Use
git-hex-rebaseWithPlanto reorder, drop, squash, or reword commits. - •Prefer
autoStash: trueandautosquash: truewhen the working tree is dirty, following git-hex documentation. - •Never use git-hex on shared or protected branches; operate on feature branches the user controls.
- •Use
- •
Safety and recovery
- •If the result is not what the user wanted, call
git-hex-undoLastto restore the previous state using git-hex backup refs. - •If a rebase pauses with conflicts, hand off to the conflict resolution Skill.
- •If the result is not what the user wanted, call
Tools to prefer
- •Planning:
git-hex-getRebasePlan,git-hex-checkRebaseConflicts - •History rewrite:
git-hex-rebaseWithPlan,git-hex-createFixup,git-hex-amendLastCommit,git-hex-splitCommit,git-hex-cherryPickSingle - •Recovery:
git-hex-undoLast
Key constraints
- •
rewordaction requiresmessagefield (without it, git opens an editor → hang). - •Messages must be single-line (no TAB/newline characters).
- •For reordering commits, set
requireComplete: truein the plan. - •Prefer
fixupoversquashunless you need to combine commit messages. - •Tools that perform their own auto-stash (
amendLastCommit,splitCommit,cherryPickSingle) exposestashNotRestoredwhen stash pop failed;rebaseWithPlanuses Git's native--autostashand does not emit this flag.