Configurar la herramienta SourceGear DiffMerge para Git
Este artículo discutirá la configuración de Git para usar DiffMerge
de SourceGear como la difftool
predeterminada. Esta herramienta nos permite comprender fácilmente los conflictos de fusión con imágenes mejoradas en comparación con la difftool
predeterminada de Git.
Es la herramienta ideal para una combinación de 3 vías, ya que admite la comparación de archivos de 3 vías.
Podemos ver el estado anterior de un archivo, el estado actual y el resultado después de una fusión. Debe descargar e instalar DiffMerge
desde el sitio web oficial de SourceGear.
Configurar DiffMerge
en Windows
Para configurar Git para usar la herramienta DiffMerge
de forma predeterminada, agréguelo a su archivo .gitconfig
.
[diff]
tool = DiffMerge
[difftool "DiffMerge"]
cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' "$LOCAL" "$REMOTE"
[merge]
tool = DiffMerge
[mergetool "DiffMerge"]
cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result="$PWD/$MERGED" "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE"
trustExitCode = true
[mergetool]
keepBackup = false
Para los parámetros del argumento de comparación, tenemos:
$LOCAL
, que es el archivo original.$REMOTE
, que es el archivo modificado.
Puede ejecutar los comandos git difftool
y git mergetool
en Git Bash para abrir DiffMerge
.
Alternativamente, puede ejecutar los siguientes comandos en su símbolo del sistema para actualizar el archivo .gitconfig
.
C:\> git config --global diff.tool diffmerge
C:\> git config --global difftool.diffmerge.cmd
"C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
\"$LOCAL\" \"$REMOTE\""
C:\> git config --global merge.tool diffmerge
C:\> git config --global mergetool.diffmerge.trustExitCode true
C:\> git config --global mergetool.diffmerge.cmd
"C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
-merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\""
Configurar DiffMerge
en Mac OS
El proceso de configuración de Git para usar DiffMerge
en Mac OS es quizás el más sencillo. Asegúrese de tener el directorio a continuación.
/usr/local/bin/diffmerge
Ejecute los siguientes comandos para actualizar su archivo .gitconfig
y pruébelo.
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""
Podemos ejecutar el comando git config --global -e
para inspeccionar nuestro archivo .gitconfig
. Debería verse algo como esto:
[diff]
tool = diffmerge
[merge]
tool = diffmerge
...
[mergetool "diffmerge"]
cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
trustExitCode = true
[mergetool]
keepBackup = false
[difftool "diffmerge"]
cmd = /usr/local/bin/diffmerge --nosplash \"$LOCAL\" \"$REMOTE\"
Configurar DiffMerge
en Ubuntu
La configuración en Ubuntu es muy similar a Mac OS. Usaremos los mismos comandos pero cambiaremos la ubicación de instalación.
Aquí están los comandos.
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""
Eso es practicamente todo. Ahora podemos ejecutar los siguientes comandos para probarlo.
$ git mergetool
$ git difftool
En resumen, si desea configurar Git para usar la herramienta DiffMerge
de SourceGear, deberá actualizar su archivo .gitconfig
con los comandos enumerados según su sistema operativo.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn