2324 votes

Comment puis-je montrer les changements qui ont été mis en scène?

J'ai mis en scène quelques modifications pour être commis; comment puis-je voir la diff de tous les fichiers qui sont mises en scène pour le prochain commit? Je suis conscient de git status, mais j'aimerais bien voir les différences - et pas seulement les noms des fichiers qui sont mis en scène.

J'ai vu que le git-diff(1) page de man dit

git diff [--options] [--] [...]

Ce formulaire est pour afficher les modifications apportées par rapport à l'indice (zone de transit pour le prochain commit). En d'autres termes, les différences sont ce que vous pourriez dire à git pour plus d'ajouter de l'indice, mais vous n'avez pas encore. Vous pouvez en scène ces modifications à l'aide de git-add(1).

Malheureusement, je n'arrive pas à donner un sens à cela. Il doit y avoir un peu de pratique one-liner qui je pourrais créer un alias pour, droite?

2834voto

Charles Bailey Points 244082

Il faut juste être:

git diff --cached

--cached moyen de montrer les évolutions dans le cache/index (c'est à dire mise en scène de modifications) à contre-courant HEAD. --staged est un synonyme --cached.

1662voto

Abizern Points 52378

Un graphique simple rend cela plus clair

Simple Git diffs

git diff

Montre les changements entre le répertoire de travail et l'index. Cela montre ce qui a été changé, mais n'est pas mis en scène pour une livraison.

git diff --cached

Montre les changements entre l'index et le CHEF(qui est le dernier commit sur cette branche). Cela montre ce qui a été ajouté à l'index et de la mise en scène pour une livraison.

git diff TÊTE

Montre toutes les modifications entre le répertoire de travail et de la TÊTE (ce qui inclut les changements dans l'indice). Cela montre toutes les modifications depuis le dernier commit, qu'ils aient ou non été mis en scène pour s'engager ou pas.

Aussi:

Il y a un peu plus de détails sur http://365git.tumblr.com/post/474079664/whats-the-difference-part-1

55voto

krlmlr Points 5572

Si vous seriez intéressé par un côté visuel-par-vue de côté, la diffuse visual diff outil peut le faire. Il va même jusqu'à montrer trois volets si certains, mais pas tous les changements sont mis en scène. Dans le cas de conflits, il y aura même des quatre volets.

Screenshot of diffuse with staged and unstaged edits

L'invoquer à l'

diffuse -m

dans votre Git de la copie de travail.

Si vous me demandez, le meilleur visuel diffèrent que j'ai vu depuis une décennie. Aussi, il n'est pas spécifique à Git: Il interagit avec une multitude d'autres VCS, y compris SVN, Mercurial, Bazaar, ...

Voir aussi: Spectacle à la fois mise en scène & arbre de travail dans git diff?

7voto

Fred Schoen Points 171

Si vous avez plus d'un fichier avec la mise en scène des modifications, il peut plus pratique à utiliser git add -i, puis sélectionnez 6: diff, et enfin choisir le fichier(s) qui vous intéresse.

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