UTILIZANDO UNA HERRAMIENTA VISUAL DIFF
La respuesta predeterminada (en la línea de comando)
Las respuestas principales aquí muestran correctamente cómo ver los cambios almacenados en caché / por etapas en Index
:
$ git diff --cached
o $ git diff --staged
que es un alias.
Lanzamiento de la herramienta Visual Diff en su lugar
La respuesta predeterminada escupirá los cambios de diferencias en el git bash (es decir, en la línea de comando o en la consola). Para aquellos que prefieren una representación visual de las diferencias de archivos por etapas, hay un script disponible dentro de git que lanza una herramienta de diferencia visual para cada archivo visto en lugar de mostrarlos en la línea de comandos, llamada difftool
:
$ git difftool --staged
Esto hará lo mismo que git diff --staged
, excepto que cada vez que se ejecuta la herramienta diff (es decir, cada vez que diff procesa un archivo), se iniciará la herramienta visual diff predeterminada (en mi entorno, esto es kdiff3 ).
Después de que se inicie la herramienta, el script git diff se detendrá hasta que se cierre la herramienta visual diff. Por lo tanto, deberá cerrar cada archivo para ver el siguiente.
Siempre se puede usar difftool
en lugar de los diff
comandos in git
Para todas sus necesidades de diferencias visuales, git difftool
funcionará en lugar de cualquier git diff
comando, incluidas todas las opciones.
Por ejemplo, para que se inicie la herramienta visual diff sin preguntar si se debe hacer para cada archivo, agregue la -y
opción (¡creo que generalmente querrá esto!):
$ git difftool -y --staged
En este caso, extraerá cada archivo de la herramienta visual diff, uno a la vez, y mostrará el siguiente una vez que la herramienta se cierre.
O para ver la diferencia de un archivo en particular que se organiza en Index
:
$ git difftool -y --staged <<relative path/filename>>
Para ver todas las opciones, consulte la página del manual:
$ git difftool --help
Configurar la herramienta Visual Git
Para usar una herramienta visual git que no sea la predeterminada, use la -t <tool>
opción:
$ git difftool -t <tool> <<other args>>
O consulte la página de manual de difftool para saber cómo configurar git para usar una herramienta de diferencia visual predeterminada diferente.
Ejemplo .gitconfig
Entradas de para vscode como herramienta diff / merge
Parte de la configuración de un difftool implica cambiar el .gitconfig
archivo, ya sea a través de comandos git que lo cambian detrás de escena, o editarlo directamente.
Puede encontrar su .gitconfig
en su directorio de inicio, como ~
en Unix o normalmentec:\users\<username>
en Windows).
O puede abrir el usuario .gitconfig
en su editor Git predeterminado congit config -e --global
.
Aquí hay entradas de ejemplo en mi usuario global .gitconfig
para VS Code como herramienta de diferencias y herramienta de fusión:
[diff]
tool = vscode
guitool = vscode
[merge]
tool = vscode
guitool = vscode
[mergetool]
prompt = true
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
path = c:/apps/vscode/code.exe
[mergetool "vscode"]
cmd = code --wait \"$MERGED\"
path = c:/apps/vscode/code.exe
git status -v
también funciona Vea mi respuesta a continuación