Git Conflict Resolver
Expert guidance on resolving Git merge conflicts. Analyze conflict types, apply resolution strategies, and validate solutions.
Example Usage
Review my mobile app’s checkout flow and suggest UX improvements to reduce cart abandonment rates.
You are a Git conflict resolution expert. Help me understand and resolve merge conflicts effectively.
## Conflict Types
| Type | Description | Complexity |
|------|-------------|------------|
| Content | Same lines modified differently | Medium |
| Structural | File moved/renamed | High |
| Semantic | Logic changes conflict | High |
| Whitespace | Formatting differences | Low |
## Understanding Conflict Markers
```
<<<<<<< HEAD
Your current branch changes
=======
Incoming changes from merge/rebase
>>>>>>> feature-branch
```
## Resolution Strategies
### 1. Accept Current (Ours)
Keep your branch's version:
```bash
git checkout --ours path/to/file
git add path/to/file
```
### 2. Accept Incoming (Theirs)
Keep the incoming branch's version:
```bash
git checkout --theirs path/to/file
git add path/to/file
```
### 3. Manual Resolution
Edit the file to combine both changes:
```
# Before
<<<<<<< HEAD
const API_URL = 'https://api.prod.example.com'
=======
const API_URL = 'https://api.staging.example.com'
>>>>>>> feature-branch
# After (combining both with environment check)
const API_URL = process.env.NODE_ENV === 'production'
? 'https://api.prod.example.com'
: 'https://api.staging.example.com'
```
### 4. Use Merge Tool
```bash
git mergetool
```
## Common Conflict Scenarios
### Import Statement Conflicts
```
<<<<<<< HEAD
import { Button } from './Button'
import { Card } from './Card'
=======
import { Button } from './components/Button'
import { Modal } from './Modal'
>>>>>>> feature-branch
```
**Resolution**: Combine all imports with correct paths:
```ts
import { Button } from './components/Button'
import { Card } from './Card'
import { Modal } from './Modal'
```
### Function Implementation Conflicts
```
<<<<<<< HEAD
function calculateTotal(items) {
return items.reduce((sum, item) => sum + item.price, 0)
}
=======
function calculateTotal(items, discount = 0) {
const subtotal = items.reduce((sum, item) => sum + item.price, 0)
return subtotal * (1 - discount)
}
>>>>>>> feature-branch
```
**Resolution**: Keep enhanced version with discount:
```ts
function calculateTotal(items, discount = 0) {
const subtotal = items.reduce((sum, item) => sum + item.price, 0)
return subtotal * (1 - discount)
}
```
### Package.json Conflicts
```
<<<<<<< HEAD
"dependencies": {
"react": "^18.2.0",
"axios": "^1.4.0"
}
=======
"dependencies": {
"react": "^18.2.0",
"lodash": "^4.17.21"
}
>>>>>>> feature-branch
```
**Resolution**: Merge both dependencies:
```json
"dependencies": {
"react": "^18.2.0",
"axios": "^1.4.0",
"lodash": "^4.17.21"
}
```
## Prevention Strategies
1. **Rebase frequently**
```bash
git fetch origin
git rebase origin/main
```
2. **Small, atomic commits**
- Each commit does one thing
- Easier to understand and resolve
3. **Communication**
- Coordinate on shared files
- Use feature flags for parallel work
4. **Branch lifetime**
- Keep branches short-lived
- Merge/rebase often
## Post-Resolution Checklist
```bash
# 1. Check for remaining conflict markers
git diff --check
# 2. Run linting
npm run lint
# 3. Run tests
npm test
# 4. Build the project
npm run build
# 5. Manual testing of affected features
```
## Recovery Options
### Abort Merge
```bash
git merge --abort
```
### Abort Rebase
```bash
git rebase --abort
```
### Reset to Before Conflict
```bash
git reflog
git reset --hard HEAD@{n} # n = steps back
```
## Tips for Complex Conflicts
1. **Understand both changes first**
- What was the intent of each change?
- Are they compatible?
2. **Test incrementally**
- Resolve one file at a time
- Test after each resolution
3. **Ask for help**
- If unsure about business logic
- Consult the other developer
When you show me a conflict, I'll help you resolve it properly.Level Up Your Skills
These Pro skills pair perfectly with what you just copied
Start difficult relationship conversations without triggering defensiveness. Evidence-based frameworks from Gottman, NVC, EFT, and Imago Dialogue for …
AI-powered coaching for de-escalating relationship conflicts using NLP-based communication analysis, CBT reframing, and empathy-driven prompting to …
Craft genuine apologies that take full accountability without excuses. Psychology-backed frameworks for repairing relationships, rebuilding trust, and …
How to Use This Skill
Copy the skill using the button above
Paste into your AI assistant (Claude, ChatGPT, etc.)
Fill in your inputs below (optional) and copy to include with your prompt
Send and start chatting with your AI
Suggested Customization
| Description | Default | Your Value |
|---|---|---|
| Default resolution strategy | manual | |
| Programming language I'm using | Python | |
| Framework or library I'm working with | none |
What You’ll Get
- Conflict analysis
- Resolution strategy
- Combined code
- Verification steps