112 votes

"git diff" ne fait rien

Je présume que c'est une erreur de configuration quelque part, mais je ne vois pas où. Régulièrement des commandes git semble fonctionner très bien, mais "git diff" ne fait rien. Pour être sûr, j'ai enlevé externe diff outils de mon .gitconfig fichier. Cela a été installé via MacPorts et est au cours de la dernière version (1.7.2.2).

Ce que je vois, c'est que quand je lance "git diff" à partir de mon espace de travail, il se ferme simplement, ne rien faire.

$ git --version
git version 1.7.2.2
$ git diff
$ 

Si j'ai une sauvegarde d'un répertoire, de ma racine de l'espace de travail, en tapant "git diff" me donne ceci:

$ git diff
usage: git diff [--no-index] <path> <path>

Ce peut être le comportement attendu puisque je ne suis pas en vertu d'un dépôt git.

Toutes les idées sur ce que je peux faire pour résoudre ce problème?

131voto

Douglas Points 10417

La sortie par défaut de git diff est la liste des modifications qui n'ont pas été commis / ajoutés à l'index. Si il n'y a pas de changements, alors il n'y a pas de sortie.

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.

Voir la documentation pour plus de détails. En particulier, faites défiler vers le bas pour les exemples, et la lecture de cet article:

$ git diff            (1)
$ git diff --cached   (2)
$ git diff HEAD       (3)
  1. Diff la copie de travail avec l'index
  2. Diff l'indice de la TÊTE
  3. Diff la copie de travail avec la TÊTE

À l'extérieur de votre espace de travail, comme vous l'avez deviné, git ne sais pas ce qu'diff, donc vous devez spécifier explicitement les deux chemins de comparer, d'où le message d'utilisation.

4voto

VonC Points 414372

Remarque: départ git 1.8.5 ou à 1,9% pour le T4 2013:

Lorsque l'utilisateur tape "git diff" à l'extérieur d'un arbre de travail, en pensant qu'il est à l'intérieur de l'un, de l'actuel message d'erreur qui est d'un seul-liner:

usage: git diff --no-index <path> <path>

peut ne pas être suffisant pour lui rendre compte de l'erreur.

Ajouter "Not a git repository" pour le message d'erreur quand nous sommes tombés dans le "--no-index" mode sans explicite de l'option de ligne de commande à nous demander de le faire.


Voir:

Clarifier la documentation pour "diff --no-index".
État que lorsqu'il n'est pas à l'intérieur d'un référentiel, --no-index est implicite et les deux arguments sont obligatoire.

Clarifier le message d'erreur de diff-no-index à en informer l'utilisateur que la MDC n'est pas à l'intérieur d'un référentiel et donc deux arguments sont obligatoires.

To compare two paths outside a working tree:
usage: git diff --no-index <path> <path>

2voto

Jaanus Points 8609

Cela ne fait rien si votre répertoire de travail est propre et s'il n'y a aucune différence par rapport à la dernière mise à jour. Essayez d’éditer un fichier, puis exécutez à nouveau git diff. Le diff devrait alors apparaître.

1voto

emostar Points 4662

Cela signifie qu'il n'y a pas de fichiers modifiés.

1voto

jweyrich Points 10002

Si vous l'utilisez en dehors d'un dépôt réel ou d'une copie de travail, son comportement est identique à celui de GNU diff. Vous devez donc informer les 2 répertoires ou fichiers à comparer. Exemple:

git diff old_dir new_dir .

S'il y a une différence entre eux, la sortie vous montrera, comme prévu.

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