Ta odpowiedź jest świetna do zobaczenia wizualnej różnicy między dwoma plikami, które są wpisane do git: Jak wyświetlić wyjście „git diff” za pomocą programu do wizualnego porównania?
Chciałbym jednak zobaczyć wizualną różnicę między dwiema gałęziami. Jak dotąd moim najlepszym zakładem wydaje się być:
git diff --name-status master dev
co nie jest zbyt pouczające i niezbyt wizualne.
Czy jest tam coś lepszego?
Odpowiedzi:
Użyj
git diff
z zakresem .Spowoduje to porównanie wskazówek z każdej gałęzi.
Jeśli naprawdę potrzebujesz oprogramowania GUI, możesz wypróbować coś takiego jak SourceTree, który obsługuje Mac OS X i Windows.
źródło
Meld
, a następnie ustawienie jej jako domyślnej zadifftool
pomocągit config --global diff.tool meld
i wreszcie uruchomienie zamiast zwykłego zadiff
pomocągit difftool branch1..branch2
. Rezultat jest znacznie ładniejszy.git difftool -t meld branch1..branch2
Aby zobaczyć wizualną różnicę wszystkich różnic między dwiema gałęziami, chcę scalić dwie gałęzie - BEZ zatwierdzenia scalenia - a następnie użyć
git gui
lub git Extensions, aby uzyskać przegląd różnic.Wiersz polecenia Git do łączenia bez zatwierdzania:
Po zakończeniu możesz cofnąć scalenie
(h / t do @ jcugat za komentarz)
źródło
git gui
, pokazuje konflikty jako nie zainscenizowane, a konflikty jako zainscenizowane, więc masz dobre rozróżnienie. Pomaga mi znacznie więcej niż najwyżej oceniana odpowiedź: DJeśli korzystasz z Intellij Idea IDE, możesz po prostu skorzystać z opcji porównania w oddziale.
źródło
Możesz to również łatwo zrobić za pomocą gitk.
Najpierw kliknij końcówkę oddziału 1. Teraz kliknij prawym przyciskiem myszy końcówkę oddziału2 i wybierz Zróżnicuj to-> wybrane.
źródło
gitk branch1..branch2
tylko pokazuje zatwierdzenia między dwiema wersjami.Dla tych z Was, którzy używają Windowsa za pomocą TortoiseGit, można uzyskać nieco wizualne porównanie dzięki tej dość niejasnej funkcji:
shift
i kliknij prawym przyciskiem myszyctrl
aby wybrać dwie gałęzie do porównaniaŹródło: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
źródło
Jeśli używasz OSX lub Windows 7+, Atlassian SourceTree działa w tym przypadku bardzo dobrze. To jest darmowe.
Możesz zobaczyć zmiany etapowe w konfiguracji różnicowego side-by-side i łatwo porównać lokalny ze zdalnym i dowolnymi dwoma innymi gałęziami. Gdy wybranych jest wiele plików, diff pokazuje się jak poniżej:
Zakładając, że sprawdziłeś gałąź funkcji i chcesz zobaczyć różnicę względem „wzorca”, kliknij prawym przyciskiem myszy gałąź „wzorca” i wybierz „Zróżnicuj względem prądu”
Niestety nie wydaje się, że będzie dostępny w wkrótce w dystrybucji * nix .
źródło
Wypróbuj „difftool” (zakładając, że masz skonfigurowane narzędzia do porównywania) - patrz https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Uważam, że status nazwy jest dobry dla podsumowania, ale difftool będzie iterował zmiany (a
-d
opcja daje widok katalogu), np.Lub, jak wspomniano w @ rsilva4
-d
i domyślnie w bieżącej gałęzi, jest to po prostu - np. Porównaj do master:... i tak - istnieje wiele odmian - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
źródło
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
Jeśli używasz github, możesz do tego użyć strony internetowej:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
To pokaże porównanie tych dwóch.
źródło
github.com/url/to/your/repo/compare/
wtedy możesz wybrać oddziałyW GitExtensions można wybrać oba oddziały w siatce wersji za pomocą Ctrlprzycisku. Następnie możesz zobaczyć pliki, które różnią się między tymi gałęziami. Po wybraniu pliku zobaczysz dla niego diff.
Zabrano stąd
źródło
AKTUALIZACJA
Mac: Teraz używam SourceTree. Dokładnie zalecane. Szczególnie podoba mi się sposób, w jaki możesz przedstawiać / pokazywać przystojniaków.
Linux: Miałem sukces z:
meld
Np. Zainstalować
smartgit
na Ubuntu:.deb
z https://www.syntevo.com/smartgit/download/To działa:
git-diffall z narzędziem GUI diff, takim jak meld. Zobacz punkt 5 tutaj:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Jest miły post o git i meld tutaj: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
źródło
Jeśli używasz Eclipse, możesz wizualnie porównać bieżącą gałąź w obszarze roboczym z inną etykietą / gałęzią:
źródło
Możesz również skorzystać z bezpłatnego P4Merge od Perforce:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Szczegółowe informacje na temat integracji z Git można znaleźć tutaj i tutaj
ale krótkie podsumowanie z powyższych linków to:
$ git mergetool
i$ git difftool
użyć p4merge$ git diff
nadal będziesz używać tylko domyślnej wbudowanej przeglądarki różnic :) (testowane z wersją git 1.8.2)Zmiany w .gitconfig
źródło
Jeśli korzystasz z doskonałego edytora WebStorm, możesz porównać z dowolnym oddziałem, który chcesz:
źródło
Spójrz na
git show-branch
Jest wiele rzeczy, które możesz zrobić z podstawową funkcjonalnością git. Dobrze jest określić, co chcesz uwzględnić w różnicach wizualnych. Większość odpowiedzi skupia się na różnicach zatwierdzeń linia po linii, gdzie twój przykład koncentruje się na nazwach plików, których dotyczy dany zatwierdzenie.
Jednym z elementów wizualnych, które wydaje się nie być omówione, jest sposób sprawdzania zmian zawartych w gałęziach (wspólnych lub unikatowych).
W przypadku tego obrazu jestem wielkim fanem
git show-branch
; wyłamuje dobrze zorganizowaną tabelę zobowiązań dla każdej gałęzi z powrotem do wspólnego przodka. - aby wypróbować go w repozytorium z wieloma gałęziami z rozbieżnościami, po prostu wpiszgit show-branch
i sprawdź dane wyjściowe - aby uzyskać opis z przykładami, zobacz Porównywanie zobowiązań między gałęziami Gitźródło
Oto jak zobaczyć wizualną różnicę między całymi zatwierdzeniami, a nie pojedynczymi plikami, w Visual Studio (testowane w VS 2017). Niestety działa tylko w przypadku zatwierdzeń w ramach jednej gałęzi: w „Eksploratorze zespołu” wybierz widok „Oddziały”, kliknij repo prawym przyciskiem myszy i wybierz „Wyświetl historię”, jak na poniższym obrazku.
Następnie historia bieżącego oddziału pojawia się w głównym obszarze. (Gdzie gałęzie, które zakończyły się jako wcześniejsze zatwierdzenia w bieżącej gałęzi, są oznaczone etykietami.) Teraz wybierz kilka zatwierdzeń za pomocą Ctrl-Lewy, a następnie kliknij prawym przyciskiem myszy i wybierz „Porównaj zatwierdzenia ...” z menu podręcznego.
Więcej informacji na temat porównywania gałęzi w świecie Microsoft znajduje się w pytaniu dotyczącym przepełnienia stosu : Różnice między gałęziami git za pomocą programu Visual Studio .
źródło
Możesz także użyć vscode do porównania oddziałów za pomocą rozszerzenia CodeLense, na co już odpowiedziano w tym SO: Jak porównać różne oddziały w kodzie Visual Studio
źródło