git-workflow
Handle squashing multiple commits and rebasing feature branches safely. Use when consolidating commits into a single commit, or rebasing feature branches onto updated development branches. Falls back from jj when not available.
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 Workflow
Safe, non-interactive approaches for squashing commits and rebasing feature branches.
Tip: If jj is available (
jj rootsucceeds), prefer jj-workflow—it's simpler and has automatic safety via oplog.
Squash N Commits
git reset --soft HEAD~3
git commit -m "Your consolidated message"
That's it. The --soft flag keeps your changes staged and ready to commit.
Rebase Feature Branch
Update dev first, then rebase:
git fetch origin dev && git checkout dev && git pull
git checkout my-feature
git rebase --committer-date-is-author-date dev
git push -f origin my-feature
The --committer-date-is-author-date flag puts your feature commits on top chronologically.
Key Safety Rules
- Never rebase shared branches — only rebase local feature branches
-
Check
git statusfirst — ensure no uncommitted changes -
Create a backup branch:
git branch backup-$(date +%s) -
Review changes before committing:
git diff --cached
Pre-Commit Hook Changes
If hooks modify files during commit, stage and amend:
git add .
git commit --amend --no-edit
When Things Go Wrong
git rebase --abort # Stop rebase, go back
git reflog # See recent commits
git reset --hard <commit-hash> # Recovery
See REFERENCE.md for detailed workflows and troubleshooting.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-03
- 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!