name: github-conflicts description: Resolve merge conflicts safely
GitHub Conflicts Skill
Safely resolve merge and rebase conflicts with user guidance.
See also: Shared Conventions | Safety Guidelines
Purpose
Handle merge conflicts methodically without guessing at resolutions.
Commands
git status
git diff
git merge <branch>
git rebase <branch>
git cherry-pick <commit>
git mergetool
git add <file>
git rebase --continue
git merge --abort
git rebase --abort
Conflict Resolution Protocol
Do not guess at resolutions. Follow this process:
1. Stop and Enumerate
List all conflicting files:
git status
2. Analyze Each Conflict
For each conflicting file, show:
- The conflicting sections
- Ours (current branch version)
- Theirs (incoming version)
git diff --name-only --diff-filter=U
3. Present Options
For each conflict, propose:
- Accept ours - keep current branch version
- Accept theirs - take incoming version
- Manual merge - combine both with specific proposal
4. Apply Resolution
Only after user confirms:
# Edit file to resolve
git add <resolved-file>
git rebase --continue # or git merge --continue
Workflow: Rebase Conflicts
# Start rebase
git fetch origin
git rebase origin/main
# If conflicts occur:
# 1. List conflicts
git status
# 2. Show conflict details (present to user)
# 3. After user decision, resolve and continue
git add <file>
git rebase --continue
Workflow: Merge Conflicts
# Start merge
git merge feature-branch
# If conflicts occur:
# 1. List conflicts
git status
# 2. Show conflict details (present to user)
# 3. After user decision, resolve and commit
git add <file>
git commit
Abort Options
If resolution becomes too complex:
git merge --abort
git rebase --abort
git cherry-pick --abort
Policies
- Never auto-resolve conflicts without user confirmation
- Always show both versions before proposing resolution
- Offer abort as an option for complex conflicts
- Verify successful resolution with
git status - Run tests after resolving if applicable