PR Rebase
Rebase the current branch on the latest upstream changes, resolve conflicts, and push.
Instructions
Determine the git remote setup:
git remote -v git branch -vv
In GitHub Actions for cross-repo PRs:
-
origin points to the head repo (fork) - this is where you push
-
upstream points to the base repo - this is what you rebase onto
For same-repo PRs, origin points to the main repo and there may be no upstream .
Fetch the latest changes:
git fetch --all
Rebase onto the base branch:
Use upstream/main if the upstream remote exists (cross-repo PR), otherwise use origin/main :
Check if upstream remote exists
git remote get-url upstream 2>/dev/null && git rebase upstream/main || git rebase origin/main
If there are merge conflicts:
Identify the conflicting files from the rebase output
Read each conflicting file and understand both versions of the changes
Resolve the conflicts by editing the files to combine changes appropriately
Stage the resolved files:
git add <resolved-file>
Continue the rebase:
git rebase --continue
Repeat until all conflicts are resolved and the rebase completes
Run lint and push:
Run the /dyad:pr-push skill to run lint checks, fix any issues, and push the rebased branch.
Summarize the results:
-
Report that the rebase was successful
-
List any conflicts that were resolved
-
Note any lint fixes that were applied
-
Confirm the branch has been pushed