Skip to main content

AI-powered git merge conflict resolver — fix conflicts in seconds, not minutes

Project description

mergefix

PyPI version Python

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

  1. Scans for files with <<<<<<< conflict markers (or use specific files)
  2. Parses each conflict block (supports 2-way and 3-way / diff3 style)
  3. Calls the AI with both sides of each conflict + surrounding context
  4. Displays each resolution in syntax-highlighted code blocks
  5. Shows a colorized unified diff of all changes
  6. Asks for confirmation before writing (skip with --yes)
  7. Writes the resolved content; optionally creates .orig backups

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mergefix-0.2.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mergefix-0.2.0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

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

Hashes for mergefix-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cd0ec09853fa543b4be470d5241e7da0dfcb4aefc879b8f4060f9b510fe7dcf2
MD5 cd0d6a375b6e92000c20e17052fb9e84
BLAKE2b-256 b86f95123241d71b746658612c8b161da2b41c986f9ba8078e06f72b6d8e8d6d

See more details on using hashes here.

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

Hashes for mergefix-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3171581cb946b6711fcca213f69251160b4313552137c380f6beb515085cf619
MD5 0997625b88a5b595a7d44cbd85330554
BLAKE2b-256 4021b3b2a133a3183f500a9e4331326da2dc86319e30c14e2513a48bf9c6e54f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page