¿Cómo configuro Git para usar una herramienta diferente para diferir con el archivo .gitconfig?
Tengo esto en mi .gitconfig:
[diff]
tool = git-chdiff #also tried /bin/git-chdiff
No funciona; solo abre la línea de comando regular diff. Cuando lo hago
export GIT_EXTERNAL_DIFF=git-chdiff
luego git diff
abrirá la herramienta de diferenciación externa (así que sé que el script de la herramienta de diferenciación externa funciona bien). ¿Tengo algún problema con mi configuración .gitconfig para la herramienta diff?
Respuestas:
Git ofrece una gama de difftools preconfigurados "listos para usar" (kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, diffuse, opendiff, p4merge y araxis), y también te permite para especificar el tuyo Para usar una de las herramientas de configuración preconfiguradas (por ejemplo, "vimdiff"), agregue las siguientes líneas a su
~/.gitconfig
:Ahora, podrá ejecutar "git difftool" y utilizar su herramienta de elección.
Por otro lado, especificar su propia herramienta difftool requiere un poco más de trabajo, consulte ¿Cómo veo la salida 'git diff' con mi herramienta / visor diff preferido?
fuente
.com
a.org
. Puedo navegar por jeetworks.org/softwareUna forma adicional de hacerlo (desde la línea de comando):
Las dos primeras líneas configurarán la herramienta difftool y mergetool para
tkdiff
cambiarla según sus preferencias. La tercera línea deshabilita el molesto mensaje, por lo que cada vez que lo golpee,git difftool
se iniciará automáticamente la herramienta de difusión.fuente
git config --global diff.tool diffmerge
, pero cuando lo hicegit diff myfile.txt
todavía me dio el valor por defecto de unix diffOtros han hecho una respuesta del 99% sobre esto, pero queda un paso por delante. (Mi respuesta vendrá de OS X, por lo que deberá cambiar las rutas de los archivos en consecuencia).
Realiza estos cambios en su
~/.gitconfig
:Esto arreglará la herramienta diff. También puede solucionar esto sin editar
~/.gitconfig
directamente ingresando estos comandos desde la terminal:El 1% que todos los demás no mencionaron es que cuando se usa esto no se puede ejecutar
git diff myfile.txt
; Necesitas corrergit difftool myfile.txt
.fuente
git config --global --add difftool.prompt false
embargo , te estás perdiendo el paso . ;)Aquí está la parte de mi ~ / .gitconfig donde configuro las herramientas diff y merge. Me gusta difundir por SourceGear. (De hecho, me gusta mucho).
Entonces, ya ves, estás definiendo una herramienta llamada "diffmerge" en la
[difftool "diffmerge"]
línea. Luego estoy configurando la herramienta "diffmerge" como predeterminada en la[diff] tool =
sección.Obviamente tengo el comando "diffmerge" en mi camino, aquí. De lo contrario, necesitaría dar una ruta completa al ejecutable.
fuente
diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
diffmerge --merge --result="$MERGED" "$LOCAL" "$BASE" "$REMOTE"
ln-s <pathtodiffmerge>/sgdm_cygwin.sh /usr/local/bin/diffmerge
y estás listo para usar la configuración anterior. Así comodiffmerge
directamente desde la línea de comando cygwin con rutas cygwin.sgdm.exe
hoy en díaReproduciendo mi respuesta de este hilo que era más específico para configurar más allá de comparar como herramienta de diferencia para Git. Todos los detalles que he compartido son igualmente útiles para cualquier herramienta de diferencias en general, así que compártela aquí:
El primer comando que ejecutamos es el siguiente:
El comando anterior crea la siguiente entrada
.gitconfig
en el%userprofile%
directorio encontrado :Luego ejecuta el siguiente comando ( Ejecutar este comando es redundante en este caso en particular y solo se requiere en algunos casos especializados. Lo sabrá en poco tiempo ):
El comando anterior crea la siguiente entrada en el
.gitconfig
archivo:Lo que hay que saber aquí es la clave
bc3
. Esta es una clave bien conocida para git que corresponde a una versión particular de herramientas de comparación bien conocidas disponibles en el mercado (bc3
corresponde a la tercera versión de la herramienta Beyond Compare). Si desea ver todas las teclas predefinidas, simplemente ejecute elgit difftool --tool-help
comando en git bash. Vuelve debajo de la lista:Puede usar cualquiera de las teclas anteriores o definir una clave personalizada propia. Si desea configurar una nueva herramienta por completo (o una versión recientemente lanzada de una herramienta conocida) que no se asigna a ninguna de las teclas enumeradas anteriormente, entonces puede asignarla a cualquiera de las teclas enumeradas anteriormente o a una nueva Clave personalizada propia.
¿Qué pasa si tiene que configurar una herramienta de comparación que es
O
Como en mi caso, había instalado beyond compare 4. beyond compare es una herramienta conocida para git pero su versión 4 no está asignada a ninguna de las claves existentes de forma predeterminada. Para que pueda seguir cualquiera de los siguientes enfoques:
Puedo asignar más allá de la herramienta compare 4 a la clave ya existente
bc3
que corresponde a la versión beyond compare 3. No tenía más allá de comparar la versión 3 en mi computadora, así que no me importó. Si quisiera, podría haberlo asignado a cualquiera de las teclas predefinidas en la lista anterior también, por ejemploexamdiff
.Si asigna una versión conocida de las herramientas a la clave apropiada ya existente / conocida, entonces no necesitará ejecutar el segundo comando ya que su ruta de instalación ya es conocida por git .
Por ejemplo, si hubiera instalado más allá de comparar la versión 3 en mi caja, entonces tener la siguiente configuración en mi
.gitconfig
archivo hubiera sido suficiente para comenzar:Pero si desea cambiar la herramienta asociada predeterminada, entonces termina mencionando el
path
atributo por separado para que git conozca la ruta desde donde se debe iniciar el exe de su nueva herramienta. Aquí está la entrada que zorros git lanzar más allá de comparar 4 en su lugar. Tenga en cuenta la ruta del exe:El enfoque más limpio es definir una nueva clave por completo para la nueva herramienta de comparación o una nueva versión de una herramienta conocida. Como en mi caso, definí una nueva clave
bc4
para que sea fácil de recordar. En tal caso, debe ejecutar dos comandos en total, pero su segundo comando no establecerá la ruta del ejecutable de su nueva herramienta. En su lugar, debe establecer elcmd
atributo para su nueva herramienta como se muestra a continuación:La ejecución de los comandos anteriores crea las siguientes entradas en su
.gitconfig
archivo:Recomiendo encarecidamente que siga el enfoque n. ° 2 para evitar confusiones en el futuro.
fuente
Agregar uno de los bloques a continuación me funciona para usar KDiff3 para mis entornos de desarrollo de Windows y Linux. Es una herramienta de combinación y diferenciación multiplataforma consistente y agradable.
Linux
Ventanas
fuente
trustExitCode = false
hará que git le pregunte si la fusión fue exitosa, en lugar de depender de si la herramienta salió con un estado verdadero o falso.Si desea tener una opción para usar múltiples herramientas diff, agregue un alias a .gitconfig
fuente
--tool
opción. GraciasConsulte Microsoft vscode-tips-and-tricks . Simplemente ejecute estos comandos en su terminal:
git config --global merge.tool code
Pero primero necesitas agregar
code
comando a tu RUTA.fuente
En Windows necesitamos ejecutar el
$git difftool --tool-help
comando para ver las diferentes opciones como:y podemos agregar cualquiera de ellos (por ejemplo winmerge) como
Para configurar notepad ++ para ver archivos antes de confirmar:
y el uso
$ git commit
abrirá la información de confirmación en el bloc de notas ++fuente