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 --stagedque 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 difftoolen lugar de los diffcomandos in git
Para todas sus necesidades de diferencias visuales, git difftoolfuncionará en lugar de cualquier git diffcomando, 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 -yopció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 .gitconfigEntradas 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 .gitconfigen su directorio de inicio, como ~en Unix o normalmentec:\users\<username> en Windows).
O puede abrir el usuario .gitconfigen su editor Git predeterminado congit config -e --global .
Aquí hay entradas de ejemplo en mi usuario global .gitconfigpara 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 -vtambién funciona Vea mi respuesta a continuación