IntelliJ: Przeglądanie różnic wszystkich zmienionych plików między lokalnym a zatwierdzeniem / rozgałęzieniem git

108

Korzystanie z przeglądarki różnic IntelliJ jest bardzo przyjemnym sposobem na przeglądanie kodu, ponieważ możesz wprowadzać zmiany w swojej lokalnej wersji z wszystkimi możliwościami edytora kodu IntelliJ (refaktoryzacja, uzupełnianie itp.).

Niestety nie wypracowałem, jak zrobić najważniejszą rzecz podczas przeglądania kodu w IntelliJ, a mianowicie: Spójrz na różnice wszystkich zmienionych plików w drzewie roboczym (wyewidencjonowane do gałęzi, z której chcesz scalić) i inną gałąź (gałąź, z którą planujesz się połączyć, np. „master”).

Czy ktoś wie, jak to zrobić?

Jon Tirsen
źródło
Zobacz sekcję Porównanie w jednym z ich postów na blogu .
Vic
To pytanie pokazuje kroki menu, aby wyświetlić różnice dla wszystkich plików w porównaniu z inną gałęzią (tj. Główną): stackoverflow.com/questions/40637055/ ...
Alan Thompson

Odpowiedzi:

63

Chociaż odpowiedź Jona Tirsena jest poprawna, musisz przejrzeć cały tekst, aby zrozumieć, jak to zrobić.

Oto obrazy tego samego w mac.

  1. Obecnie pracuję z hello_world i chcę porównać z master.

AKTUALIZACJA: W nowym interfejsie użytkownika kliknij Show Diff with Working Tree

wprowadź opis obrazu tutaj

  1. Następnie pojawi się okno. Wybierz Filesi naciśnijcmd + d

wprowadź opis obrazu tutaj

  1. Kolejne okno, które pokazuje diff. Możesz wykonać wiele różnych typów różnic. Użyj cmd + shift + ]i cmd + shift + [do przechodzenia między plikami.

wprowadź opis obrazu tutaj

Wskazówka dotycząca różnic: IntelliJ zapewnia zaawansowane funkcje porównywania. Możesz to sprawdzić na trzecim obrazku.

nieznany błąd
źródło
1
Jak mogę to zrobić dla całego projektu, zamiast pliku po pliku?
JoeMjr2
@ JoeMjr2 Naprawdę nie jestem pewien, czy ta funkcja jest dziś dostępna. Możesz poruszać się po wszystkich plikach za pomocą cmd + shift + [i cmd + shift + ](zamień cmd na ctrl, jeśli używasz Windows).
unknownerror
Zostało to zmienione w aktualizacji wersji 2020, zobacz moją odpowiedź poniżej dla zaktualizowanej metody.
BlueYoshi
Czy możesz również porównać 2 wersje według identyfikatorów zmian?
Dan Macák
88

Zostało to teraz wdrożone. Aby porównać dwie gałęzie, musisz:

  1. Sprawdź jedną z gałęzi, z którą chcesz porównać.
  2. Wybierz gałąź, z którą chcesz porównać, w wyskakującym okienku gałęzi Git na pasku stanu w prawym dolnym rogu okna IntelliJ. Zostanie wyświetlone okno podręczne z niektórymi opcjami.
  3. Wybierz opcję „Porównaj”.
  4. To domyślnie pokazuje wszystkie zatwierdzenia. Możesz także wybrać zakładkę "Diff", aby pokazać aktualne zmiany.

Wszystko to jest opisane bardziej szczegółowo w jednym z ich postów na blogu .

Jon Tirsen
źródło
4
Czy jest to również możliwe w przypadku arbitralnych zatwierdzeń zamiast rozgałęzień? Mam na myśli, że mogę szybko utworzyć lokalny oddział w tym celu, ale wydaje się to trochę kłopotliwe.
Robin
1
@ Hikaru755 tak, stworzyłem tmpoddział, myślę, że jest wystarczająco dobry. Wygląda jednak na
przesadę
3
@Robin tak, możesz. Otwórz historię pliku, wybierz dwa zatwierdzenia i naciśnij Ctrl-D. Działa również między różnymi gałęziami.
Victor Sergienko,
13

Zostało to zmienione w aktualizacji wersji 2020:

Musisz teraz wykonać następujące czynności:

  1. Sprawdź jedną z gałęzi, którą chcesz porównać.

  2. Otwórz menu Oddziały .

  3. Wybierz inną gałąź, z którą chcesz porównać.

  4. Wybierz „Pokaż różnice z drzewem roboczym” .

wprowadź opis obrazu tutaj

BlueYoshi
źródło
Dzięki, zdałem sobie sprawę, że się zmieniło, ale nie mogłem dowiedzieć się, gdzie to poszło.
fmquaglia
1
To jest najbardziej aktualna odpowiedź w tej chwili. Inne odpowiedzi odnoszą się do starszych wersji IntelliJ, ale nie do obecnej.
Pavel
10

Jest to teraz realizowane. Klikasz projekt prawym przyciskiem myszy i wybierasz „Git - porównaj z gałęzią ...” i wybierasz mastergałąź. Gotowe. Porównaj wszystkie pliki.

WesternGun
źródło
To jest dobre podejście. Jeśli widzisz wyszarzoną opcję, oznacza to, że nie klikasz prawym przyciskiem myszy w folderze projektu java / main / src.
jmojico
1

Jeśli chcesz po prostu porównać aktualnie otwarty plik z inną gałęzią w sposób równoległy, po prostu przejdź do VCS -> Git -> Porównaj z Branch.

pilnex
źródło
6
To odpowiada na pytanie, ale nie na to! :)
Lambart
1

Kliknij prawym przyciskiem myszy klasę i wybierz opcję Git, gdzie zobaczysz opcję porównania z gałęzią, w której możesz wybrać konkretną gałąź.

sonal balekai
źródło