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.