Rebase onto Main
Rebase the current feature branch onto the latest main branch.
Usage
code
/rebase-main
Instructions
1. Check Current State
bash
# Get current branch git branch --show-current # Check for uncommitted changes git status --porcelain
If there are uncommitted changes, ask the user whether to:
- •Stash them before rebasing
- •Commit them first
- •Abort the rebase
2. Fetch Latest Main
bash
git fetch origin main
3. Check if Rebase is Needed
bash
# See how many commits main is ahead git rev-list --count HEAD..origin/main
If main is not ahead, inform the user the branch is already up to date.
4. Perform Rebase
bash
git rebase origin/main
5. Handle Conflicts
If conflicts occur:
- •
List the conflicting files:
bashgit diff --name-only --diff-filter=U
- •
For each conflicting file:
- •Read the file to understand the conflict
- •Resolve the conflict appropriately
- •Stage the resolved file:
git add {file}
- •
Continue the rebase:
bashgit rebase --continue
- •
If conflicts are too complex, offer to abort:
bashgit rebase --abort
6. Force Push (if branch was already pushed)
bash
# Check if branch has upstream
git rev-parse --abbrev-ref @{upstream} 2>/dev/null
# If it does, force push with lease for safety
git push --force-with-lease
7. Report Result
Tell the user:
- •How many commits were rebased
- •Whether force push was needed
- •Any conflicts that were resolved