53 votes

Quelles sont les différences entre ces commandes git diff?

Quelles sont les différences entre les commandes git suivantes?

  1. git diff HEAD
  2. git diff HEAD^
  3. git diff --cached ou le synonyme git diff --staged
  4. git diff

117voto

Amber Points 159296
  1. Montre ce qui a changé depuis le dernier commit.
  2. Montre ce qui a changé depuis le commit avant le dernier commit.
  3. Affiche ce qui a été ajouté à l’indice via git add mais pas encore validé.
  4. Affichez ce qui a changé mais n’a pas encore été ajouté à l’indice via git add .

Cela ressemble à ceci:

 Working Directory    <----+--------+-------+
        |                 |        |       |
        |              diff HEAD   |       |
        V                 |        |       |
   "git add"              |        |       |
        |                 |        |     diff
        |                 |        |       |
        V                 |        |       |
     Index     <----+-----|--------|-------+
        |           |     |        |       
        |   diff --staged |        |       
        V           |     |        |       
  "git commit"      |     |        |
        |           |     |        |
        |           |     |        |
        V           |     |        |
      HEAD     <----+-----+        |
        |                          |
        |                       diff HEAD^
        V                          |
previous "git commit"              |
        |                          |
        |                          |
        V                          |
      HEAD^          <-------------+
 

10voto

Matthew Rankin Points 71628

Depuis le Git Community Book:

git diff

va vous montrer les changements dans le répertoire de travail qui ne sont pas encore mises en scène pour le prochain commit.

git diff --cached

va vous montrer la différence entre l'index et votre dernier commit; ce que vous commettez si vous exécutez "git commit" sans le "-une" option.

git diff HEAD

montre les changements dans le répertoire de travail depuis votre dernier commit; ce que vous commettez si vous exécutez "git commit-a".

9voto

wRAR Points 13223
  1. Diff entre HEAD et le répertoire de travail.
  2. Diff entre l'ancêtre direct de HEAD et le répertoire de travail.
  3. Diff entre HEAD et l'index.
  4. Diff entre l'index et le répertoire de travail.

0voto

Josh K Points 11621

HEAD est le pointeur actuel HEAD dans l'arborescence, HEAD^ est le commit avant HEAD . --cached Je ne suis pas sur. --cached vous montrera toutes les modifications que vous avez apportées mais que vous n'avez pas ajoutées à l'index.

Le tutoriel git sur kernal.org est une très bonne lecture.

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