UTILISATION D'UN OUTIL VISUEL DIFF
La réponse par défaut (sur la ligne de commande)
Les meilleures réponses ici montrent correctement comment afficher les modifications mises en cache / par étapes dans Index
:
$ git diff --cached
ou $ git diff --staged
qui est un alias.
Lancer l'outil Visual Diff à la place
La réponse par défaut crachera les changements de diff au git bash (c'est-à-dire sur la ligne de commande ou dans la console). Pour ceux qui préfèrent une représentation visuelle des différences de fichiers intermédiaires, il existe un script disponible dans git qui lance un outil de comparaison visuelle pour chaque fichier consulté plutôt que de les afficher sur la ligne de commande, appelé difftool
:
$ git difftool --staged
Cela fera la même chose que git diff --staged
, sauf chaque fois que l'outil de diff est exécuté (c'est-à-dire chaque fois qu'un fichier est traité par diff), il lancera l'outil de diff visuel par défaut (dans mon environnement, c'est kdiff3 ).
Après le lancement de l'outil, le script git diff s'arrêtera jusqu'à ce que votre outil de diff visuel soit fermé. Par conséquent, vous devrez fermer chaque fichier pour voir le suivant.
Vous pouvez toujours utiliser difftool
à la place dediff
commandes in git
Pour tous vos besoins de diff visuels, git difftool
fonctionnera à la place de toutgit diff
commande, y compris toutes les options.
Par exemple, pour lancer l'outil de diff visuel sans demander s'il faut le faire pour chaque fichier, ajoutez l' -y
option (je pense que généralement vous en aurez envie !!):
$ git difftool -y --staged
Dans ce cas, il récupérera chaque fichier dans l'outil de diff visuel, un à la fois, en faisant apparaître le suivant après la fermeture de l'outil.
Ou pour regarder la différence d'un fichier particulier qui est mis en scène dans Index
:
$ git difftool -y --staged <<relative path/filename>>
Pour toutes les options, consultez la page de manuel:
$ git difftool --help
Configuration de Visual Git Tool
Pour utiliser un outil visuel git autre que celui par défaut, utilisez l' -t <tool>
option:
$ git difftool -t <tool> <<other args>>
Ou, consultez la page de manuel difftool pour savoir comment configurer git pour utiliser un autre outil de diff visuel par défaut.
Exemples d' .gitconfig
entrées pour vscode comme outil de diff / fusion
Une partie de la configuration d'un outil difft implique de modifier le .gitconfig
fichier, soit via des commandes git qui le modifient en arrière-plan, soit en le modifiant directement.
Vous pouvez le trouver .gitconfig
dans votre répertoire personnel, comme sous ~
Unix ou normalement c:\users\<username>
sous Windows).
Ou, vous pouvez ouvrir l'utilisateur .gitconfig
dans votre éditeur Git par défaut avecgit config -e --global
.
Voici des exemples d'entrées dans mon utilisateur global .gitconfig
pour VS Code en tant qu'outil de diff et outil de fusion:
[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
fonctionne aussi. Voir ma réponse ci