UTILIZZANDO UNO STRUMENTO DIFF. VISIVO
La risposta predefinita (dalla riga di comando)
Le risposte principali qui mostrano correttamente come visualizzare le modifiche memorizzate nella cache / in fasi nel Index
:
$ git diff --cached
o $ git diff --staged
che è un alias.
Avvio invece di Visual Diff Tool
La risposta predefinita sputerà le modifiche diff su git bash (cioè sulla riga di comando o nella console). Per coloro che preferiscono una rappresentazione visiva delle differenze di file gestite, all'interno di git è disponibile uno script che avvia uno strumento di visualizzazione visiva per ogni file visualizzato anziché mostrarli sulla riga di comando, chiamato difftool
:
$ git difftool --staged
Questo farà lo stesso di git diff --staged
, tranne ogni volta che viene eseguito lo strumento diff (cioè ogni volta che un file viene elaborato da diff), avvierà lo strumento diff predefinito di visualizzazione (nel mio ambiente, questo è kdiff3 ).
Dopo l'avvio dello strumento, lo script git diff verrà messo in pausa fino alla chiusura dello strumento di visualizzazione visiva. Pertanto, sarà necessario chiudere ciascun file per visualizzare quello successivo.
Puoi sempre usare difftool
al posto dei diff
comandi in git
Per tutte le tue esigenze di diff visivo, git difftool
funzionerà al posto di qualsiasi git diff
comando, comprese tutte le opzioni.
Ad esempio, per avviare lo strumento di visualizzazione visiva senza chiedere se farlo per ogni file, aggiungi l' -y
opzione (penso che di solito lo vorrai !!):
$ git difftool -y --staged
In questo caso, tirerà su ogni file nello strumento di visual visual, uno alla volta, facendo apparire quello successivo dopo la chiusura dello strumento.
O per guardare il diff di un particolare file che viene messo in scena in Index
:
$ git difftool -y --staged <<relative path/filename>>
Per tutte le opzioni, vedere la pagina man:
$ git difftool --help
Impostazione di Visual Git Tool
Per usare uno strumento visual git diverso da quello predefinito, usa l' -t <tool>
opzione:
$ git difftool -t <tool> <<other args>>
Oppure, vedere la pagina man difftool per come configurare git per usare un diverso strumento di visualizzazione differenziale predefinito.
.gitconfig
Voci di esempio per vscode come strumento diff / merge
Parte della configurazione di un difftool comporta la modifica del .gitconfig
file, sia tramite comandi git che lo modificano dietro le quinte, sia modificandolo direttamente.
Puoi trovarlo .gitconfig
nella tua home directory, come ~
in Unix o normalmente c:\users\<username>
su Windows).
Oppure, puoi aprire l'utente .gitconfig
nel tuo editor Git predefinito con git config -e --global
.
Ecco alcune voci di esempio nel mio utente globale .gitconfig
per VS Code come strumento diff e merge:
[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
funziona anche. Vedi la mia risposta qui sotto