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.

kikito
la source

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:

Mischa Arefiev
la source
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
EliuX
la source