Si je lance 'statut git' sur mon dépôt, cela donne:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: myfile
Cependant, si je fais un 'git diff myfile', cela ne montre aucune différence. Est-ce parce que j'ai apporté une modification et que je l'ai supprimée pour qu'elle revienne à l'original?
Devrais-je exécuter 'git checkout myfile' pour l'effacer?
Votre fichier est déjà mis en scène pour être commis. Vous pouvez montrer ses différences en utilisant l'option --cached
de git.
git diff --cached myfile
Pour le décomposer, faites ce que le statut de git suggère dans sa sortie;)
Vous pouvez vérifier L’index Git Pour plus d’informations.
J'ai une préférence pour l'alias --staged
, principalement parce que je trouve que --staged
signifie réellement ce que je veux faire, c'est-à-dire qu'il me montre les différences mises en scène.
git diff --staged
La réponse acceptée est correcte et je n’y ai aucun scrupule. Personnellement, je pense que --cached
donne l'impression que git diff met en cache la réponse et me montre des résultats pré-calculés ou quelque chose du genre.
J'aime aussi git diff HEAD
parce que c'est plus général. Il rassemble deux concepts que la plupart des gens connaissent, à savoir:
git diff <commit>
vous permet de voir la différence entre votre position actuelle et un commit précédent.
HEAD
(ou head
parce que mettre en attente est ennuyeux) est une référence à la pointe de votre branche. (Pour ceux qui comptent les frappes, @
est un alias pour HEAD
.)
Combinés, ces deux concepts généralement utiles ont pour résultat:
git diff head
git diff @
Pour comparaison entre zone de stockage intermédiaire et référentiel
$git diff --staged
Pour une comparaison entre travail et stockage
$ git diff
mais si un fichier est modifié et ajouté à la zone de transfert ($ git add fileName
), nous essayons de voir la différence avec ($ git diff
). Cela ne renverra aucune différence puisque le fichier se trouve dans la zone de transfert et ne sera pas comparé au référentiel.