Je suppose que c'est une erreur de configuration quelque part, mais je ne sais pas où. Les commandes git normales semblent fonctionner correctement, mais "git diff" ne fait rien. Pour être sûr, j'ai supprimé les outils de diff externes de mon fichier .gitconfig. Cela a été installé via MacPorts et est la dernière version (1.7.2.2).
Ce que je vois, c'est que lorsque j'exécute "git diff" depuis mon espace de travail, il se termine simplement, sans rien faire.
$ git --version
git version 1.7.2.2
$ git diff
$
Si je sauvegarde un répertoire, hors de mon espace de travail racine, taper "git diff" me donne ceci:
$ git diff
usage: git diff [--no-index] <path> <path>
Cela peut être un comportement attendu car je ne suis pas sous un référentiel git.
Des idées sur ce que je peux faire pour résoudre ce problème?
git diff
dehors d' un repo sera bientôt plus clair. Voir ma réponse ciRéponses:
La sortie par défaut de
git diff
est la liste des modifications qui n'ont pas été validées / ajoutées à l'index. S'il n'y a aucun changement, il n'y a pas de sortie.Consultez la documentation pour plus de détails. En particulier, faites défiler les exemples et lisez cette section:
En dehors de votre espace de travail, comme vous l'avez deviné, git ne saura pas quoi différencier, vous devez donc spécifier explicitement deux chemins à comparer, d'où le message d'utilisation.
la source
Remarque: à partir de git 1.8.5 ou 1.9, T4 2013 :
Voir:
git diff --no-index
peut agir comme un régulier (non-git)diff
.la source
Cela ne fait rien si votre répertoire de travail est propre et qu'il n'y a aucune différence par rapport à la dernière mise à jour. Essayez de modifier un fichier, puis exécutez à nouveau git diff, et il devrait alors afficher le diff.
la source
Si vous l'utilisez en dehors d'un référentiel réel ou d'une copie de travail, son comportement est identique à celui du diff GNU. Vous devez donc renseigner 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.
la source
Pas dans votre cas, mais peut-être parce que le fichier que vous passez n'existe pas
rien n'arrive
la source