Ответы:
Следующие работы для меня:
git diff master:foo foo
В прошлом это могло быть:
git diff foo master:foo
--, чтобы отделить параметры от аргументов пути? git diff -- master:foo foo
git diff -- master:foo fooне работает - кажется, что arg рассматривается master:fooкак несуществующее имя файла (и игнорирует его) вместо file-in-a-branch. Попробуйте переключить последние 2 аргумента - если это сработало, сравнение diff должно быть обратным, но вывод не меняется.
git diff master:foo fooно не наоборот. Я тоже этого не понимаю. С git 1.7.9.5 / Ubuntu 12.04 я могу, по крайней мере, сделать git diff -R master:foo fooто, что мне нужно. Когда я пытаюсь это с msysgit 1.9.4 / Windows 7 x64, я получаю fatal: unable to read 0000000000000000000000000000000000000000. Без -Rя получаю то же сообщение об ошибке, что и вы с git 1.7.9.5, но с 1.9.4 я получаю fatal: master:foo: no such path in the working tree.
Вы пытаетесь сравнить ваше рабочее дерево с конкретным именем ветви, поэтому вы хотите это:
git diff master -- foo
Который из этой формы git-diff (см. Страницу руководства 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.
К вашему сведению, есть также --cached(иначе --staged) опция для просмотра различий того, что вы поставили, а не всего в вашем рабочем дереве:
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.
Также: git diff master..feature foo
Поскольку git diff foo master:fooне работает на каталоги для меня.
git diff branch1:foo master:foo
git difftool tag/branch filename
git difftoolне имеет -vвыбора в соответствии с docs git-scm.com/docs/git-difftool . Вы имели в виду -y?
git diff mybranch master -- file
также должен работать
git diff deployment master -- fileи git diff master deployment -- fileработают как положено с любыми 2 ветками .
Чтобы увидеть локальные изменения, сравните с вашей текущей веткой
git diff .
Чтобы увидеть локальные изменения, сравните с любой другой существующей веткой
git diff <branch-name> .
Чтобы увидеть изменения конкретного файла
git diff <branch-name> -- <file-path>
Убедитесь, что вы бежите git fetchв начале.
git diff, я всегда думаю о stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/…