AI-powered git merge conflict resolver — fix conflicts in seconds, not minutes
Project description
mergefix
AI-powered git merge conflict resolver — run one command, review the diff, apply.
$ mergefix
╭──────────────────────────────────────────────────────╮
│ mergefix · 3 files · 7 conflicts · provider: claude │
╰──────────────────────────────────────────────────────╯
→ src/auth.py (2 conflicts)
Conflict 1/2
ours: main
theirs: feature/oauth
✓ Resolution:
def authenticate(user, password):
return bcrypt.checkpw(password.encode(), user.password_hash)
Conflict 2/2
ours: main
theirs: feature/oauth
✓ Resolution:
SESSION_TIMEOUT = 3600 # keep shorter timeout from main
Diff:
--- a/src/auth.py
+++ b/src/auth.py
@@ -12,7 +12,4 @@ def get_user(user_id):
-<<<<<<< HEAD
- return hashlib.md5(password.encode()).hexdigest()
-=======
- return bcrypt.checkpw(password.encode(), user.password_hash)
->>>>>>> feature/oauth
+ return bcrypt.checkpw(password.encode(), user.password_hash)
Apply resolutions to src/auth.py? [Y/n] y
✓ Applied
✅ All 3 file(s) resolved.
Run `git diff` to review changes, then `git add` to mark as resolved.
Install
pip install mergefix
Set your API key (or use Ollama for free local resolution):
export ANTHROPIC_API_KEY=your-key # Claude (default, recommended)
export OPENAI_API_KEY=your-key # or OpenAI
# or: mergefix --provider ollama # local, no API key needed
Usage
# Resolve all conflicts in the current repo (most common)
mergefix
# Resolve a specific file
mergefix src/auth.py src/db.py
# Preview resolutions without writing (safe to run anytime)
mergefix --preview
# Auto-apply all resolutions without prompting (CI/scripting)
mergefix --yes
# Keep original files as .orig backups
mergefix --backup
# Give the AI extra context about your codebase
mergefix --context "Python web app, prefer async patterns, strict type hints"
# Use local Ollama (free, no API key)
mergefix --provider ollama
# Use OpenAI
mergefix --provider openai --model gpt-4o
How it works
- Scans for files with
<<<<<<<conflict markers (or use specific files) - Parses each conflict block (supports 2-way and 3-way / diff3 style)
- Calls the AI with both sides of each conflict + surrounding context
- Displays each resolution in syntax-highlighted code blocks
- Shows a colorized unified diff of all changes
- Asks for confirmation before writing (skip with
--yes) - Writes the resolved content; optionally creates
.origbackups
The AI sees the full file context, not just the conflict lines — so it understands the surrounding code and makes semantically correct resolutions.
Supports
- Languages: Any language (Python, JS, TypeScript, Go, Rust, Java, Ruby, etc.)
- Conflict styles: 2-way (default git) and 3-way / diff3
- Providers: Claude (default), OpenAI, Ollama (local, free)
- Multiple conflicts: Resolves all conflicts in a file in one AI call
- Multiple files: Processes all conflicted files in one run
Pre-merge hook
Add to your workflow to catch issues early:
# After a merge, resolve all conflicts and review:
git merge feature-branch
mergefix --preview # preview only
mergefix # apply
git add -A
git commit
Or as a one-liner for scripting:
git merge feature-branch && mergefix --yes && git add -A && git commit -m "resolve merge conflicts"
Part of the git toolkit
mergefix is part of a suite of AI-powered git tools:
| Tool | What it does |
|---|---|
| gitbrief | Pack your git history into LLM context |
| gpr | Generate PR descriptions and commit messages |
| critiq | AI code reviewer before you push |
| standup-ai | Generate daily standups from git history |
| changelog-ai | Generate CHANGELOG from commits |
| mergefix | Resolve merge conflicts with AI |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mergefix-0.2.0.tar.gz.
File metadata
- Download URL: mergefix-0.2.0.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd0ec09853fa543b4be470d5241e7da0dfcb4aefc879b8f4060f9b510fe7dcf2
|
|
| MD5 |
cd0d6a375b6e92000c20e17052fb9e84
|
|
| BLAKE2b-256 |
b86f95123241d71b746658612c8b161da2b41c986f9ba8078e06f72b6d8e8d6d
|
File details
Details for the file mergefix-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mergefix-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3171581cb946b6711fcca213f69251160b4313552137c380f6beb515085cf619
|
|
| MD5 |
0997625b88a5b595a7d44cbd85330554
|
|
| BLAKE2b-256 |
4021b3b2a133a3183f500a9e4331326da2dc86319e30c14e2513a48bf9c6e54f
|