Réponses:
Ce qui suit fonctionne pour moi:
git diff master:foo foo
Dans le passé, cela peut avoir été:
git diff foo master:foo
--
pour séparer les paramètres des arguments de chemin? git diff -- master:foo foo
git diff -- master:foo foo
ne fonctionne pas - il semble traiter l'argument master:foo
comme un nom de fichier inexistant (et l'ignore) au lieu d'un fichier dans une branche. Essayez de changer les 2 derniers arguments - si cela a fonctionné, la comparaison diff devrait être inversée, mais la sortie ne change pas.
git diff master:foo foo
mais pas l'inverse. Je ne comprends pas non plus. Avec git 1.7.9.5 / Ubuntu 12.04, je peux au moins faire git diff -R master:foo foo
pour obtenir le diff que je veux réellement. Quand j'essaye cela avec msysgit 1.9.4 / Windows 7 x64 je reçois fatal: unable to read 0000000000000000000000000000000000000000
. Sans -R
j'obtiens le même message d'erreur que vous avec git 1.7.9.5, mais avec 1.9.4 j'obtiens fatal: master:foo: no such path in the working tree
.
Vous essayez de comparer votre arbre de travail avec un nom de branche particulier, vous voulez donc ceci:
git diff master -- foo
Qui est de cette forme de git-diff (voir la page de manuel git-diff)
git diff [--options] <commit> [--] [<path>...]
This form is to view the changes you have in your working tree
relative to the named <commit>. You can use HEAD to compare it with
the latest commit, or a branch name to compare with the tip of a
different branch.
Pour info, il existe également une option --cached
(aka --staged
) pour afficher le diff de ce que vous avez mis en scène, plutôt que tout dans votre arbre de travail:
git diff [--options] --cached [<commit>] [--] [<path>...]
This form is to view the changes you staged for the next commit
relative to the named <commit>.
...
--staged is a synonym of --cached.
Aussi: git diff master..feature foo
Puisque git diff foo master:foo
ne fonctionne pas sur les répertoires pour moi.
git diff branch1:foo master:foo
git difftool tag/branch filename
git difftool
n'a pas d' -v
option selon les documents git-scm.com/docs/git-difftool . Voulez-vous dire -y
?
git diff mybranch master -- file
devrait aussi fonctionner
git diff deployment master -- file
et git diff master deployment -- file
fonctionnent comme prévu avec 2 branches quelconques .
Pour voir les changements locaux par rapport à votre succursale actuelle
git diff .
Pour voir les modifications locales comparées à toute autre branche existante
git diff <branch-name> .
Pour voir les modifications d'un fichier particulier
git diff <branch-name> -- <file-path>
Assurez-vous de courir git fetch
au début.
git diff
, je pense toujours à stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/…