414 votes

Comment puis-je voir ce qui a été modifié dans un fichier avant de le commiter dans git ?

J'ai remarqué que lorsque je travaille sur un ou deux billets, si je m'éloigne, je ne suis pas sûr de ce sur quoi j'ai travaillé, de ce qui a changé, etc.

Existe-t-il un moyen de voir les changements effectués pour un fichier donné avant git add et ensuite git commit ?

626voto

Jefromi Points 127932

Vous êtes à la recherche de

git diff --staged

En fonction de votre situation exacte, il existe trois façons utiles d'utiliser git diff :

  1. Montrer les différences entre l'index et l'arbre de travail ; c'est-à-dire, les changements que vous n'avez pas mis en scène pour commettre :

    git diff [filename]

  2. Montrer les différences entre le commit actuel et l'index ; c'est-à-dire, ce que vous êtes sur le point de commettre ( --staged fait exactement la même chose, utilisez ce que vous voulez) :

    git diff --cached [filename]

  3. Montrer les différences entre le commit actuel et l'arbre de travail :

    git diff HEAD [filename]

git diff travaille récursivement sur les répertoires, et si aucun chemin n'est donné, il affiche tous les changements.

1 votes

@sveilleux2 Non, il suffit de lancer git diff sans aucun argument - comme le dit la dernière phrase de la réponse, si aucun chemin n'est donné, il affiche toutes les modifications. (Les parenthèses sur [filename] indique un argument facultatif). Avec l'option * vous laissez l'interpréteur de commandes lister tous les fichiers, donc si vous êtes dans un sous-répertoire, vous n'obtiendrez que les éléments de ce sous-répertoire (et non l'ensemble du répertoire), et vous manquerez les changements dans les fichiers cachés.

0 votes

# montrer les différences entre le commit actuel et l'index # c'est-à-dire ce que vous êtes sur le point de commettre git diff --cached [nom du fichier] Ne voulez-vous pas dire : # montrer les différences entre le commit actuel et l'index # c'est-à-dire ce que vous êtes sur le point de commettre. pousser ? git diff --cached [nom du fichier]

4 votes

Pour voir les différences faites après l'ajout d'un fichier (i.e., après "git add "), faites "git diff --staged [filename]".

48voto

Felix Kling Points 247451

Utilisez git-diff :

git diff -- yourfile

8voto

elmt Points 1006

git diff filename

5voto

miku Points 63392

git diff

Afficher les changements entre l'arbre de travail et l'index ou un arbre, les changements entre l'index et un arbre, les changements entre deux arbres, ou les changements entre deux fichiers sur le disque.

0 votes

La citation est un peu trop forte - par défaut, elle effectue la première comparaison : entre l'arbre de travail et l'index.

3voto

Dustin Points 35205

Rappelez-vous, vous vous engagez changements et non des fichiers.

Pour cette raison, il est très rare que je n'utilise pas git add -p (ou l'équivalent magit) pour ajouter mes modifications.

2 votes

Git fait PAS gérer les changements - essayer d'y penser comme si c'était le cas est la principale source de confusion et d'erreurs. git gère les instantanés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X