Odpowiedzi:
U mnie działa:
git diff master:foo foo
W przeszłości mogło to być:
git diff foo master:foo
--oddzielić parametry od argumentów ścieżki? git diff -- master:foo foo
git diff -- master:foo foonie działa - wydaje się, że traktuje argument master:foojako nieistniejącą nazwę pliku (i ignoruje go) zamiast pliku-w-gałęzi. Spróbuj zmienić ostatnie 2 argumenty - jeśli zadziałało, porównanie różnic powinno zostać odwrócone, ale wynik się nie zmienia.
git diff master:foo fooale nie odwrotnie. Ja też tego nie rozumiem. Z git 1.7.9.5 / Ubuntu 12.04 mogę przynajmniej zrobić różnicę, git diff -R master:foo fooktórej faktycznie potrzebuję. Kiedy próbuję tego z msysgit 1.9.4 / Windows 7 x64, otrzymuję fatal: unable to read 0000000000000000000000000000000000000000. Bez -Rtego otrzymuję taki sam komunikat o błędzie jak ty z gitem 1.7.9.5, ale z 1.9.4 dostaję fatal: master:foo: no such path in the working tree.
Próbujesz porównać swoje drzewo robocze z nazwą konkretnej gałęzi, więc chcesz tego:
git diff master -- foo
Który pochodzi z tej formy git-diff (zobacz stronę podręcznika 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.
Do Twojej wiadomości, istnieje również --cached(aka --staged) opcja przeglądania różnicy tego, co wystawiłeś, zamiast wszystkiego w drzewie roboczym:
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.
Również: git diff master..feature foo
Ponieważ git diff foo master:foodla mnie nie działa na katalogach.
git diff branch1:foo master:foo
git difftool tag/branch filename
git difftoolnie ma -vopcji zgodnie z dokumentacją git-scm.com/docs/git-difftool . Czy miałeś na myśli -y?
git diff mybranch master -- file
powinien również działać
git diff deployment master -- filei git diff master deployment -- filedziałają zgodnie z oczekiwaniami z dowolnymi 2 gałęziami .
Aby zobaczyć lokalne zmiany w porównaniu z obecnym oddziałem
git diff .
Aby zobaczyć zmiany lokalne w porównaniu z innymi istniejącymi oddziałami
git diff <branch-name> .
Aby zobaczyć zmiany w określonym pliku
git diff <branch-name> -- <file-path>
Upewnij się, że biegniesz git fetchna początku.
git diff, zawsze myślę o stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/ ...