← Back to Repository

⚔️ fit - Merge Conflict Resolver

Terminal-based merge conflict resolver with three-pane TUI interface

v0.1.0

fit is a terminal-based merge conflict resolver that provides a clean, three-pane TUI interface similar to VS Code's merge conflict UI. Written in Modern Fortran, it makes resolving git merge conflicts intuitive and efficient with keyboard-driven navigation and visual diff highlighting.

📦 Installation Options

RHEL/CentOS/Rocky/Alma/Fedora
🚀 RPM Install
# Add repository sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo # Install package sudo dnf install fit # Use on any file with merge conflicts fit myfile.txt

✨ Key Features

📐 Three-Pane Layout

Visual side-by-side comparison with left pane for incoming changes, right pane for local changes, and bottom pane showing a live preview of your resolution.

🎨 Color-Coded Diffs

Green + symbols for incoming additions and red - for local changes provide clear visual distinction between versions.

⚡ Sequential Navigation

Navigate through multiple conflicts with intuitive keyboard shortcuts, making complex multi-conflict files easy to resolve.

🎯 Interactive Resolution

Choose incoming, local, or both changes for each conflict with simple keystrokes. See results immediately in the preview pane.

⌨️ Keyboard Controls

i Select incoming changes (from remote/HEAD) l Select local changes (current branch) b Select both changes (incoming then local) n Navigate to next conflict (also or ) p Navigate to previous conflict (also or ) s Save resolved file and quit q Quit without saving (also ESC)

🎬 Usage Examples

Basic Usage: # Resolve conflicts in a file fit myfile.txt Common Git Workflows: # After a merge with conflicts git merge feature-branch # CONFLICT (content): Merge conflict in src/app.py fit src/app.py # Use keyboard controls to resolve conflicts # Press 's' to save when done git add src/app.py git commit Rebase Workflow: git rebase main # CONFLICT: Merge conflict in config.yaml fit config.yaml # Resolve conflicts interactively git add config.yaml git rebase --continue

💡 Why fit?

Problem: Manual conflict resolution is tedious... - Editing conflict markers manually is error-prone - Hard to visualize differences side-by-side in terminal - Easy to accidentally leave conflict markers in code - Difficult to see the big picture with multiple conflicts Solution: fit provides... ✓ Clean three-pane visual interface ✓ Side-by-side comparison of incoming vs local changes ✓ Live preview of resolution before saving ✓ Keyboard-driven workflow for efficiency ✓ Guaranteed removal of conflict markers ✓ Sequential navigation for multi-conflict files

🔧 Requirements

System Requirements: - Linux x86_64 (RHEL/CentOS/Rocky/Alma/Fedora 9+) - Terminal with ANSI color support - Git (for generating conflicts to resolve) Dependencies: - No external dependencies beyond standard system libraries - Works on any text file with git conflict markers

🔗 Links

📜 License

fit is released under the MIT License. See the GitHub repository for full license details.