Riproduzione della mia risposta da questo thread che era più specifico per l'impostazione oltre il confronto come strumento diff per Git. Tutti i dettagli che ho condiviso sono ugualmente utili per qualsiasi strumento diff in generale, quindi condividilo qui:
Il primo comando che eseguiamo è il seguente:
git config --global diff.tool bc3
Il comando precedente crea la voce seguente in .gitconfig
trova nella %userprofile%
directory:
[diff]
tool = bc3
Quindi esegui il comando seguente (L' esecuzione di questo comando è ridondante in questo caso particolare ed è richiesta solo in alcuni casi specializzati. Lo conoscerai tra poco ):
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"
Il comando precedente crea la voce di seguito nel .gitconfig
file:
[difftool "bc3"]
path = c:/program files/Beyond Compare 3/bcomp.exe
La cosa da sapere qui è la chiave bc3
. Questa è una chiave ben nota per git corrispondente a una particolare versione di noti strumenti di confronto disponibili sul mercato ( bc3
corrisponde alla terza versione dello strumento Beyond Compare). Se vuoi vedere tutte le chiavi predefinite, esegui il git difftool --tool-help
comando su git bash. Ritorna sotto l'elenco:
vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff
Puoi usare una qualsiasi delle chiavi sopra o definire una tua chiave personalizzata. Se si desidera impostare del tutto un nuovo strumento (o una versione appena rilasciata di un noto strumento) che non si associa a nessuna delle chiavi sopra elencate, si è liberi di mapparlo su una qualsiasi delle chiavi sopra elencate o su una nuova chiave personalizzata di tua scelta.
E se fosse necessario impostare uno strumento di confronto che sia
- Assolutamente nuovo nel mercato
O
- È stata rilasciata una nuova versione di un noto strumento esistente che non è mappato su alcuna chiave predefinita in git ?
Come nel mio caso, avevo installato Beyond Compare. Quindi puoi seguire uno dei seguenti approcci:
Posso mappare oltre lo strumento compare 4 alla chiave già esistente bc3
che corrisponde alla versione oltre confronta 3. Non avevo a confronto la versione 3 sul mio computer, quindi non mi importava. Se avessi voluto avrei potuto mapparlo su una qualsiasi delle chiavi predefinite nell'elenco sopra anche ad es examdiff
.
Se si mappano le versioni ben note degli strumenti per appropriarsi della chiave già esistente / ben nota, non è necessario eseguire il secondo comando poiché il percorso di installazione è già noto a git .
Ad esempio, se avessi installato oltre la versione 3 di confronto sulla mia scatola, avere una configurazione inferiore nel mio .gitconfig
file sarebbe stato sufficiente per iniziare:
[diff]
tool = bc3
Ma se vuoi cambiare lo strumento associato predefinito, finisci per menzionare l' path
attributo separatamente in modo che git conosca il percorso da cui deve essere avviato l'ex del tuo nuovo strumento. Ecco la voce che foxes git lancerà al di là del confronto 4 invece. Nota il percorso dell'exe:
[difftool "bc3"]
path = c:/program files/Beyond Compare 4/bcomp.exe
L'approccio più pulito è definire una nuova chiave del tutto per il nuovo strumento di confronto o una nuova versione di uno strumento ben noto. Come nel mio caso, ho definito una nuova chiave in bc4
modo che sia facile da ricordare. In tal caso, è necessario eseguire due comandi in tutto, ma il secondo comando non imposterà il percorso dell'eseguibile del nuovo strumento. Invece devi impostare l' cmd
attributo per il tuo nuovo strumento come mostrato di seguito:
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
L'esecuzione sopra i comandi crea le voci seguenti nel .gitconfig
file:
[diff]
tool = bc4
[difftool "bc4"]
cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
Consiglio vivamente di seguire l'approccio n. 2 per evitare confusioni per se stessi in futuro.