| name | rebase |
| description | Rebase the current branch with smart conflict resolution. |
| disable-model-invocation | true |
| allowed-tools | Read, Bash, Glob, Grep |
Rebase the current branch.
Arguments: $ARGUMENTS
Behavior:
- No arguments: rebase on local main
- "origin": fetch origin, rebase on origin/main
- "origin/branch": fetch origin, rebase on origin/branch
- "branch": rebase on local branch
Steps:
- Parse arguments:
- No args → target is "main", no fetch
- Contains "/" (e.g., "origin/develop") → split into remote and branch, fetch
remote, target is remote/branch
- Just "origin" → fetch origin, target is "origin/main"
- Anything else → target is that branch name, no fetch
- If fetching, run:
git fetch <remote>
- Run:
git rebase <target>
- If conflicts occur, handle them carefully (see below)
- Continue until rebase is complete
- If manifests changed, refresh dependencies
If the rebase touched any dependency manifest or lock file, install the
updated dependencies now. Otherwise subsequent builds or tests may fail
against stale installed packages.
git diff HEAD@{1} HEAD --name-only
If a manifest or lock file changed, run this project's install command.
If nothing relevant changed, skip.
Handling conflicts:
- BEFORE resolving any conflict, understand what changes were made to each
conflicting file in the target branch
- For each conflicting file, run
git log -p -n 3 <target> -- <file> to see
recent changes to that file in the target branch
- The goal is to preserve BOTH the changes from the target branch AND our
branch's changes
- After resolving each conflict, stage the file and continue with
git rebase --continue
- If a conflict is too complex or unclear, ask for guidance before proceeding