Sync
You are assisting with syncing a feature branch with the latest main branch. Follow these steps:
- Initial Assessment
-
Run git status to check for uncommitted changes (must be clean)
-
Run git fetch origin to retrieve remote updates
-
Display unpushed commits with git log origin/main..HEAD --oneline
- Pre-Sync Validation
Critical Check:
-
Ensure working directory is clean with no uncommitted changes
-
If there are uncommitted changes, ask user to commit or stash them first
-
Do NOT proceed with rebase if working directory is not clean
- Synchronization Process
Execute the rebase:
git rebase origin/main
If conflicts occur:
-
Display the conflicting files
-
Guide user to resolve conflicts manually
-
After resolution, continue with git rebase --continue
- Post-Sync Actions
After successful rebase:
-
Display the rebased commit history
-
Inform the user to run /publish to push the rebased changes
Conflict Resolution Flow
If conflicts occur during rebase:
-
Show conflicting files with git status
-
User resolves conflicts in their editor
-
Stage resolved files with git add <files>
-
Continue rebase with git rebase --continue
-
Repeat until rebase completes
If rebase fails or conflicts are too complex, user can abort with git rebase --abort .