git - diff des changements actuels avant de valider


106

J'ai changé plusieurs fichiers dans un référentiel git, mais je ne les ai pas encore validés.

Je peux obtenir une liste des modifications en invoquant simplement git status. Mais comment puis-je obtenir une liste des lignes ou du contenu que j'ai changé, en plus des noms de fichiers?

J'ai initialement pensé à utiliser git diff , mais cela ne semble utile que pour comparer les changements déjà validés.

Habituellement, je fais juste meld ., mais dans ce cas, je suis connecté à un serveur externe via ssh.

Réponses:


153

git diffpar défaut, affiche la différence entre votre répertoire de travail et l' index ( zone de préparation pour le prochain commit).

Si vous avez déjà ajouté ( mis en scène ) les modifications à la zone de préparation , git diff --stagedfait le travail. La zone de transit est les données à partir desquelles le prochain commit sera formé git commit.

PS Bonne lecture (IMO) pour les débutants Git:


La mise en scène ne s'applique-t-elle pas uniquement aux fichiers non encore ajoutés? Je pensais que vous deviez utiliser le drapeau mis en cache.
pbond

4
@peterbond man git-diffdit--staged is a synonym of --cached
Mischa Arefiev

2
@peterbond Techniquement mis en scène signifie ajouté à la zone de préparation qui n'est pas encore un commit. J'ai clarifié cela dans l'édition.
Mischa Arefiev

1
@Mischa La documentation indique que le comportement par défaut pour git diffest de calculer la différence entre le répertoire de travail et l'index , pasHEAD
Axel

Il ne m'est pas venu à l'esprit d'invoquer git diff sans paramètre. Merci!
kikito

10

Ce que j'utilise pour de tels cas est:

git diff HEAD *

Cela montrera les changements depuis le dernier commit. Bien que cela fonctionne plus rapidement avec

git diff .

ou

git diff

Pour voir les modifications sur les git addfichiers édités précédemment , utilisez l' stagedindicateur:

git diff --staged
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.