Variables
TO_BRANCH: $1 (defaults to main)
FROM_BRANCH: $2 (defaults to current branch)
Workflow
Step 1: Sync with remote (CRITICAL)
git fetch origin
git checkout {TO_BRANCH}
git pull origin {TO_BRANCH}
Step 2: Merge from REMOTE tracking branch
# Use origin/{FROM_BRANCH} to merge remote state, not local WIP
git merge origin/{FROM_BRANCH} --no-ff -m "merge: {FROM_BRANCH} into {TO_BRANCH}"
Why origin/{FROM_BRANCH}: Ensures merging only committed+pushed changes, not local uncommitted work.
Step 3: Resolve conflicts if any
- If conflicts exist, resolve them manually
- After resolution:
git add . && git commit
Step 4: Push merged result
git push origin {TO_BRANCH}
Notes
- If
ghcommand is not available, instruct the user to install and authorize GitHub CLI first. - If you need more clarifications, use
AskUserQuestiontool to ask the user for more details. - Always fetch and pull latest remote state before merging to avoid stale conflicts.
IMPORTANT Task Planning Notes
- Always plan and break many small todo tasks
- Always add a final review todo task to review the works done at the end to find any fix or enhancement needed