У меня есть репо с файлом foo
в основной ветке. Я переключился на ветку бара и внес некоторые изменения в foo
. Как я могу теперь запустить git diff
между этой копией (которая еще не зафиксирована) и копией главной ветви?
158
Следующие работы для меня:
git diff master:foo foo
В прошлом это могло быть:
git diff foo master:foo
git diff
, я всегда думаю о stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/…--
, чтобы отделить параметры от аргументов пути?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 (см. Страницу руководства git-diff)
К вашему сведению, есть также
--cached
(иначе--staged
) опция для просмотра различий того, что вы поставили, а не всего в вашем рабочем дереве:источник
Также:
git diff master..feature foo
Поскольку
git diff foo master:foo
не работает на каталоги для меня.источник
git diff branch1:foo master:foo
источник
git difftool
не имеет-v
выбора в соответствии с docs git-scm.com/docs/git-difftool . Вы имели в виду-y
?также должен работать
источник
git diff deployment master -- file
иgit diff master deployment -- file
работают как положено с любыми 2 ветками .Чтобы увидеть локальные изменения, сравните с вашей текущей веткой
Чтобы увидеть локальные изменения, сравните с любой другой существующей веткой
Чтобы увидеть изменения конкретного файла
Убедитесь, что вы бежите
git fetch
в начале.источник