Sinopsis
git mergetool [-t <tool>] [--tool-help] [<file>...]
Descripción
El comando git mergetool lanza una herramienta externa de merge para ayudar a resolver conflictos tras un merge, rebase o cherry-pick que se detiene con conflictos. Herramientas comunes incluyen vimdiff, meld, kdiff3, p4merge, opendiff y vscode. Una vez configurado vía merge.tool, ejecutar git mergetool abre cada archivo conflictivo en la herramienta elegida y stagea la resolución cuando guardas.
La mayoría de editores modernos (VS Code, IDEs de JetBrains, Vim con Fugitive) tienen UIs de merge incorporadas que hacen redundante git mergetool. Aún así, en la línea de comandos o sobre SSH, sigue siendo una utilidad esencial para resolución gráfica o de tres paneles.
En el uso diario, git mergetool se integra con alias de shell. Para depurar, ejecuta con GIT_TRACE=1.
Entender cómo git mergetool interactúa con el modelo de datos de Git ayuda a recuperarse de errores.
Opciones comunes
| Opción | Descripción |
|---|---|
-t <tool>, --tool=<tool> | Usa una herramienta de merge específica para esta ejecución. |
--tool-help | Lista las herramientas de merge que Git conoce. |
-y, --no-prompt | No pregunta antes de lanzar la herramienta. |
-g, --gui | Usa la herramienta GUI de merge.guitool. |
-O<file> | Procesa archivos en el orden listado en file. |
Ejemplos
git config --global merge.tool meld
# Configura meld como predeterminada
git mergetool
# Lanza la herramienta configurada en cada archivo conflictivo
git mergetool -t vimdiff
# Usa vimdiff solo esta vez
git mergetool --tool-help
# Ve la lista de herramientas soportadas
Errores comunes
Tras resolver con git mergetool, los archivos de respaldo .orig sobrantes ensucian el directorio. Deshabilítalos con git config --global mergetool.keepBackup false. Otra trampa: lanzar una herramienta GUI sobre SSH sin X forwarding falla silenciosamente. Configura una herramienta amigable con consola (como vimdiff) para sesiones remotas.
Comandos relacionados
git merge, git rebase, git config, git diff