git bash: No se puede generar kdiff3 como difftool

Intento utilizar KDiff3 como difftool en Git Bash en un sistema Windows 8.1, y estoy seguro de que soy bastante nuevo para Git. No puedo hacer que KDiff3 se abra cuando bash comparar un file en etapas con el file comprometido, y estoy confundido sobre qué hacer al respecto. Encontré instrucciones en línea para configurar KDiff3 como una herramienta de combinación , y supuse que tenía que hacer algo similar para configurarlo como una herramienta de diferencia (no he podido encontrar instrucciones suficientemente explícitas para los novatos para configurar el diff herramienta, por eso estoy aquí). Esto es lo que hice después de download e instalar KDiff3:

git config --global diff.tool kdiff3 git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED' 

Git no me arrojó ningún error, entonces ¿es correcto? ¡Admito completamente que no entiendo la syntax aquí! De todos modos, cuando probé esto:

  git diff HEAD 

Entiendo esto:

  error: cannot spawn kdiff3: No such file or directory external diff died, stopping at MyFile.R 

He mirado alnetworkingedor, y veo algunas references a personas que tienen problemas similares cuando $ PATH no estaba configurado correctamente. Realmente no sé qué es $ PATH (y si alguien me puede aclarar, estaría muy agradecido), pero la ruta que tengo para KDiff3 (C: \ Program Files \ KDiff3 \ kidff3) es definitivamente donde kdiff3.exe se encuentra en mi máquina. ¿Alguna sugerencia?

Gracias de antemano, y como dije, soy nuevo en Git, así que si no he proporcionado alguna información crítica, háganmelo saber.

Le sugiero que renuncie a su segunda línea de configuration, ya que Git bash ya ha definido cómo usar kdiff3. (Puede ver su installation de Git Bash. Por ejemplo, en mi ruta, puedo encontrar C: \ Archivos de progtwig (x86) \ Git \ libexec \ git-core \ mergetools \ kdiff3, que es el file de configuration para kdiff3) . Lo único que debe hacer es poner kdiff3 en su variable PATH.

Use solo su primera línea:

 git config --global diff.tool kdiff3 

pero NO tu segunda línea:

 #### comment out this line: # git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED' 

Para arreglar su configuration ya agregada, intente editar su .gitconfig, bajo su GIT BASH

 vim ~/.gitconfig 

Busque la sección [difftool "kdiff3"] y elimine la línea con cmd= debajo de esa sección. También puede eliminar toda la sección (es decir, también eliminar la línea que contiene [difftool "kdiff3"]

Luego agrega tu ruta a kdiff3:

 PATH=$PATH:"/c/Program Files/KDiff3" 

Se necesita una comilla doble debido al espacio entre "Progtwig" y "Archivos".

Esta línea PATH se puede agregar a su .bashrc o .bash_profile, dependiendo de cómo inicie su bash …

— ACTUALIZACIÓN —

Corrección: Dado que Git Bash usa la variable de entorno definida por el sistema de Windows 'RUTA' + la variable de entorno definida por el usuario de Windows 'RUTA'. El cambio de RUTA anterior es más difícil (utilizando .bashrc, etc.). Simplemente cambie las variables de entorno de Windows como este enlace , y / o este enlace

Cambia tu segunda línea en GitBash:

 git config --global diff.tool kdiff3 git config --global difftool.kdiff3.path 'c:\Program Files\KDiff3\kdiff3.exe' 

La sección correspondiente en el .gitconfig global se ve así:

 [diff] tool = kdiff3 [difftool "kdiff3"] path = c:\\Program Files\\KDiff3\\kdiff3.exe 

Y solo para evitar la confusión:

Ahora git difftool HEAD lanza kdiff3 .

Pero git diff HEAD todavía muestra los cambios en GitBash.