Recientemente estaba usando GitExtension 2.46, pero la versión de Git que tiene el mismo es 1.9.4.msysgit.2. Dispuesto a usar solo comandos Git, desinstalé GitExtension e instalé la última versión disponible de Git y KDiff3 .
Cuando hago una fusión y tengo conflictos, ejecuto el siguiente comando:
$ git mergetool
Entonces recibo el mensaje:
La herramienta de combinación kdiff3 no está disponible como 'kdiff3'.
Supongo que debe ser por el camino KDiff3.
Ambiente
- SO: Windows 10
- Git 2.6.1.windows.1
- KDiff3 0.9.98 (64 bits)
Preguntas:
¿Qué debo configurar en el archivo .gitconfig para que el comando
$ git mergetool
abra la GUI de KDiff3 con las versiones LOCAL , REMOTO , BASE y MERGED del archivo en conflicto?¿Cómo configurarlo para usarlo tiene la herramienta diff?
Respuestas:
Estos sitios fueron muy útiles, casi, mergetool y difftool . Utilicé la configuración global, pero el repositorio puede usarla sin problemas. Solo necesita ejecutar los siguientes comandos:
El uso de la
trustExitCode
opción depende de lo que desee hacer cuando regrese la herramienta diff. De la documentación :fuente
git config --global --add diff.guitool kdiff3
a esta:git config --global --add diff.tool kdiff3
--add
agregará una segunda o tercera entrada cuando se invoque varias veces. Eso es difícil de arreglar más tarde, porque simplemente no se puede eliminar con--remove
. Solo establecer un valor sin--add
debería estar bien.Solo para extender la respuesta de @ Joseph :
Después de aplicar estos comandos, su
.gitconfig
archivo global tendrá las siguientes líneas (para acelerar el proceso, simplemente puede copiarlas en el archivo) :fuente
.gitconfig
archivo que estaba editando no era el que estaba siendo usado. Ver stackoverflow.com/questions/2114111/… para identificar los que se están cargando. (2) No mezcle y combinecmd =
ypath =
en gitconfig, TL; DR: elimine cmd y solo use pathPara usuarios de Mac
Aquí está la respuesta aceptada de @ Joseph, pero con la ubicación predeterminada de la ruta de instalación de Mac de
kdiff3
(Tenga en cuenta que puede copiar y pegar esto y ejecutarlo de una vez)
fuente
--add
ya que eso puede dar como resultado 2 entradas de configuración si ejecuta el comando dos veces. Es un desastre limpiar esto, porque ya no puedes eliminar una sola entrada. Consulte git-scm.com/docs/git-config : "Se pueden agregar varias líneas a una opción"Bueno, el problema es que Git no puede encontrar KDiff3 en% PATH%.
En una instalación típica Unix todos los ejecutables residen en varios lugares bien conocidos (
/bin/
,/usr/bin/
,/usr/local/bin/
, etc.), y uno puede invocar un programa simplemente escribiendo su nombre en un procesador de shell (por ejemplo,cmd.exe
:)).En Microsoft Windows, los programas generalmente se instalan en rutas dedicadas, por lo que no puede simplemente escribir
kdiff3
uncmd
sesión y ejecutar KDiff3.La solución difícil: debe decirle a Git dónde encontrar KDiff3 especificando la ruta completa a
kdiff3.exe
. Desafortunadamente, a Git no le gustan los espacios en la especificación de ruta en su configuración, por lo que la última vez que lo necesité, terminé con esos antiguos "C: \ Progra ~ 1 ... \ kdiff3.exe" como si fuera tarde 1990s :)La solución simple: edite la configuración de su computadora e incluya el directorio con kdiff3.exe en% PATH%. Luego pruebe si puede invocarlo desde cmd.exe por su nombre y luego ejecute Git.
fuente
Necesitaba agregar los parámetros de la línea de comando o KDiff3 solo se abriría sin archivos y me pediría una base, local y remota. Usé la versión suministrada con TortoiseHg .
Además, necesitaba recurrir a los viejos y buenos nombres de archivo DOS 8.3.
Sin embargo, funciona correctamente ahora.
fuente
Para enmendar la respuesta de kris , comenzando con Git 2.20 (Q4 2018), el comando adecuado para será
git mergetool
Esto se debe a que "
git mergetool
" aprendió a tomar la--[no-]gui
opción " ", al igual que "git difftool
".Ver commit c217b93 , commit 57ba181 , commit 063f2bd (24 Oct 2018) por Denton Liu (
Denton-L
) .(Fusión por Junio C Hamano -
gitster
- en commit 87c15d1 , 30 oct 2018)fuente
(Al tratar de descubrir cómo usar kdiff3 de WSL git, terminé aquí y obtuve las piezas finales, así que publicaré mi solución para cualquier otra persona que también tropiece aquí mientras trato de encontrar esa respuesta)
Cómo usar kdiff3 como herramienta diff / merge para WSL git
Con Windows Update 1903 es mucho más fácil; simplemente use wslpath y no hay necesidad de compartir TMP de Windows a WSL ya que el lado de Windows ahora tiene acceso al sistema de archivos WSL a través de \ wsl $:
Antes de la actualización de Windows 1903
Pasos para usar kdiff3 instalado en Windows 10 como herramienta diff / merge para git en WSL:
fuente