git-hex-branch-cleanup
This skill should be used when the user wants to clean up a feature branch's history using git-hex (squash/fixup commits, reorder/drop/split commits, or rebase a branch onto main) without using an interactive terminal. Trigger phrases include: "clean up my branch", "polish history", "squash these commits", "fixup commits", "rebase onto main", "rewrite commits".
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
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.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!