Sinossi
git mergetool [-t <tool>] [--tool-help] [<file>...]
Descrizione
Il comando git mergetool lancia uno strumento di merge esterno per aiutare a risolvere i conflitti dopo che un merge, rebase o cherry-pick si ferma con conflitti. Strumenti comuni includono vimdiff, meld, kdiff3, p4merge, opendiff e vscode. Una volta configurato tramite merge.tool, eseguire git mergetool apre ogni file in conflitto nello strumento scelto e mette in stage la risoluzione quando salvi.
La maggior parte degli editor moderni (VS Code, IDE JetBrains, Vim con Fugitive) ha UI di merge integrate che rendono git mergetool ridondante. Tuttavia, sulla riga di comando o su SSH, rimane un'utility essenziale per la risoluzione grafica o a tre pannelli dei conflitti.
Nell'uso quotidiano, git mergetool si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
-t <tool>, --tool=<tool> | Usa uno strumento di merge specifico per questa esecuzione. |
--tool-help | Elenca gli strumenti di merge che Git conosce. |
-y, --no-prompt | Non chiedere prima di lanciare lo strumento. |
-g, --gui | Usa lo strumento GUI da merge.guitool. |
-O<file> | Processa i file nell'ordine elencato in file. |
Esempi
git config --global merge.tool meld
# Configura meld come default
git mergetool
# Lancia lo strumento configurato su ogni file in conflitto
git mergetool -t vimdiff
# Usa vimdiff solo questa volta
git mergetool --tool-help
# Vedi la lista degli strumenti supportati
Errori comuni
Dopo aver risolto con git mergetool, file di backup .orig rimasti ingombrano la directory. Disabilitali con git config --global mergetool.keepBackup false. Un'altra trappola: lanciare uno strumento GUI su SSH senza X forwarding fallisce silenziosamente. Configura uno strumento amichevole alla console (come vimdiff) per le sessioni remote.
Comandi correlati
git merge, git rebase, git config, git diff