Da Anonimo (non verificato) , 29 Aprile 2026

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

OpzioneDescrizione
-t <tool>, --tool=<tool>Usa uno strumento di merge specifico per questa esecuzione.
--tool-helpElenca gli strumenti di merge che Git conosce.
-y, --no-promptNon chiedere prima di lanciare lo strumento.
-g, --guiUsa 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