przepraszam, jeśli to pytanie istnieje, o dziwo nie mogłem go znaleźć: /
Jak mogę wykonać git diff
między dwoma plikami w tej samej gałęzi i tym samym zatwierdzeniu?
to znaczy git diff fileA.php fileB.php
(najlepiej z łatwym do odczytania kodowaniem kolorami, które git
oferuje ... lub podobne do tego, co robi program BeyondCompare!)
Odpowiedzi:
Nie potrzebujesz do tego gita, po prostu użyj
diff fileA.php fileB.php
(lub vimdiff, jeśli chcesz porównać obok siebie)źródło
vimdiff
dla zwycięstwa! Dzięki!git diff
różnicy, ale po prostu łatwego do odczytania diff. Również fakt, że przyjął moją odpowiedź jako to, czego szukał, wskazuje również, że w rzeczywistości odpowiada ona.diff fileA fileB
nie jestgit diff fileA fileB
Jeśli chcesz użyć
git diff
na dwóch dowolnych plikach, możesz użyćgit diff --no-index <file_a> <file_b>
. Abygit
to zadziałało, nie trzeba śledzić tych dwóch plików .źródło
--word-diff
podkreśla zmiany słowami, a nie tylko liniamidiff
has--color
, co może pomóc (patrz unix.stackexchange.com/a/338960 ). Ale nawet wtedy, jeśli jest używanydiff-so-fancy
, wydaje się, że wymaga określonego formatu wyjściowegogit diff
.diff -u
(patrz stackoverflow.com/a/4857407/10095231 ) nie działa.Jeśli pliki, które chcesz porównać, znajdują się w kopii roboczej, możesz użyć po prostu
diff
tak, jak wskazały inne, jednak jeśli pliki są w jakiejś wersji, możesz określić wersję dla każdego plikujak zauważono tutaj: https://stackoverflow.com/a/3343506/1815446
W twoim przypadku (określając tę samą wersję dla obu plików):
źródło
HEAD~2
, SHA-1, nazwa oddziału itp.git diff --name-only HEAD:dir1 HEAD:dir1_backup
działa po jednymgit add
z obu katalogów.Aby zwykłe różnice w gnu wyglądały bardziej jak git diff, polecam następujące parametry:
(gdzie
-b
ignoruje spacje,-u
ujednoliconą różnicę,-r
rekurencję,-N
traktuje brakujące pliki jako/dev/null
).Działa świetnie, ale nadal nie ma kolorów, a automatyczne stronicowanie w stylu git jest praktycznie nieobecne. Jeśli chcesz naprawić oba (tak robię), zainstaluj
colordiff
i używaj w następujący sposób:Daje to wyjście i interfejs bardzo zbliżone do rzeczywistego
git diff
.źródło
Jeśli chcesz porównać dwa pliki lokalne w tym samym katalogu, po prostu użyj diff.
źródło
Po prostu użyj zwykłego diff.
źródło