Chcę scalić dwie gałęzie, które zostały oddzielone na jakiś czas i chciałem wiedzieć, które pliki zostały zmodyfikowane.
Przeszedłem przez ten link: http://linux.yyz.us/git-howto.html, co było dość przydatne.
Narzędzia do porównywania gałęzi, na które natrafiłem, to:
git diff master..branch
git log master..branch
git shortlog master..branch
Zastanawiałem się, czy istnieje coś takiego jak „git status master..branch”, aby zobaczyć tylko te pliki, które różnią się między dwiema gałęziami.
Bez tworzenia nowego narzędzia, myślę, że jest to najbliższe, co możesz zrobić teraz (co oczywiście pokaże powtórzenia, jeśli plik został zmodyfikowany więcej niż raz):
git diff master..branch | grep "^diff"
Zastanawiałem się, czy coś mi umknęło ...
git
branch
git-branch
git-diff
johannix
źródło
źródło
Odpowiedzi:
Aby porównać bieżący oddział z
master
oddziałem:Aby porównać dowolne dwie gałęzie:
Przeczytaj
git diff
w oficjalnej dokumentacji .źródło
git diff --name-status your_branch...master
wypisuje zmiany, które zaszły w Master, odkąd twoja twoja gałąź została utworzona z niegoPróbować
To da ci więcej informacji o każdej zmianie, przy jednoczesnym użyciu tej samej liczby linii.
Możesz także obrócić gałęzie, aby uzyskać jeszcze wyraźniejszy obraz różnicy, jeśli połączysz w drugą stronę:
źródło
config --global color.ui true
), możesz pominąć --color. (Mam lks - syndrom leniwej klawiatury.)git config --global color.ui true
- aby być kompletnym.fatal: ambiguous argument 'master..branchName': unknown revision or path not in the working tree.
Pamiętaj również, że git ma tanie i łatwe rozgałęzianie. Jeśli myślę, że scalenie może być problematyczne, tworzę gałąź dla scalenia. Więc jeśli
master
mam zmiany, które chcę scalić iba
jest to moja gałąź, która potrzebuje kodu z mastera, mogę wykonać następujące czynności:Efektem końcowym jest to, że muszę wypróbować scalenie na gałęzi wyrzucanej przed wkręceniem mojej gałęzi. Jeśli się zaplątam, mogę po prostu usunąć
ba-merge
gałąź i zacząć od nowa.źródło
master
podczas pracy nad przeglądaniem kodu i rozwiązywaniem konfliktów.Jeśli ktoś próbuje wygenerować plik różnicowy z dwóch gałęzi:
źródło
Istnieje również metoda oparta na GUI.
Możesz użyć gitk .
Biegać:
Kliknij prawym przyciskiem myszy na zatwierdzenie oddziału i wybierz Oznacz to zatwierdzenie z wyskakującego menu.
Następnie pojawi się lista zmienionych plików w prawym dolnym panelu i szczegóły różnic w lewym dolnym panelu.
źródło
Jeszcze jedna opcja, w tym przypadku za pomocą meldowania:
Pozwala to nie tylko zobaczyć różnice między plikami, ale także zapewnia łatwy sposób wskazywania i klikania określonego pliku.
źródło
-d
opcja?Zauważ, że git ułatwia wypróbowanie scalenia i uniknięcie problemów, jeśli nie podoba ci się wynik. Może to być łatwiejsze niż wcześniejsze wyszukiwanie potencjalnych problemów.
źródło
A jeśli szukasz zmian tylko w niektórych plikach, to:
oddział 1 jest opcjonalny, a obecny oddział (oddział, w którym się znajdujesz) będzie domyślnie brany pod uwagę, jeśli oddział 1 nie zostanie podany. na przykład:
źródło
Podczas pracy zespołowej lub nad wieloma funkcjami jednocześnie powszechne jest, że nadrzędny, a nawet twój master zawiera prace, które nie są zawarte w twojej gałęzi i będą niepoprawnie pojawiać się w podstawowych różnicach.
Jeśli Twój Upstream mógł się przenieść, powinieneś to zrobić:
Samo użycie git diff master może zawierać lub nie zawierać odpowiednich zmian.
źródło
Jeśli korzystasz z IntelliJ IDEA , możesz także porównać dowolny oddział z bieżącym działającym oddziałem. Aby uzyskać więcej informacji, zobacz http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 Jest to również dostępne w wersji bezpłatnej .
źródło
Powiedzmy, że są dwie gałęzie
Będąc w oddziale A możesz pisać
to da ci wynik
Ważną kwestią jest to
Tekst w kolorze zielonym znajduje się wewnątrz w Oddziale A
Tekst w kolorze czerwonym jest obecny w Oddziale B
źródło
Tutaj jest wiele odpowiedzi, ale chciałem dodać coś, z czego często korzystam. JEŻELI jesteś w jednej z gałęzi, którą chcesz porównać, zazwyczaj wykonuję jedną z następujących czynności. Ze względu na tę odpowiedź powiemy, że jesteśmy w naszej drugiej gałęzi. W zależności od tego, jaki widok potrzebujesz w danym momencie, będzie zależeć od tego, który wybierzesz, ale przez większość czasu używam drugiej opcji z tych dwóch. Pierwsza opcja może się przydać, jeśli próbujesz przywrócić oryginalną kopię - w obu przypadkach zadanie zostanie wykonane!
Spowoduje to porównanie wzorca do gałęzi, w której się znajdujemy (która jest drugorzędna), a oryginalny kod będzie dodanymi wierszami, a nowy kod będzie uważany za usunięte wiersze
LUB
Spowoduje to również porównanie mastera do gałęzi, w której się znajdujemy (która jest drugorzędna), a oryginalny kod będzie starymi liniami, a nowy kod będzie nowymi liniami
źródło
Jeśli korzystasz z Github / Github Enterprise, możesz korzystać z internetowego interfejsu użytkownika, klikając adres URL
/compare
ścieżki do repozytorium, na przykład https://github.com/http4s/http4s/compare . Możesz wybrać gałąź / zatwierdzenie / tag, który chcesz porównać:I diff zostanie zaprezentowany w interfejsie github pod adresem URL,
/compare/{x1}...{x2}
gdzie sąx2
ix1
są gałęzią / zatwierdzeniem / znacznikiem, który chcesz porównać, na przykład: https://github.com/http4s/http4s/compare/release-0.18.x ...mistrzMożesz zobaczyć więcej w Github Doc .
źródło
Dla osób, które szukają rozwiązania GUI, Git Cola ma bardzo przyjemną „Branch Diff Viewer ( Diff -> Branch .. ).
źródło
jeśli
revision_n
irevision_m
są kolejnymi zatwierdzeniami, to wypisuje to samo cogit show revision_m
źródło
Możesz także użyć różnicy wizualnej .
Na przykład, jeśli używasz Sourcetree , możesz po prostu wybrać dowolne dwa zatwierdzenia w widoku dziennika .
(W większości przypadków osobiście wolę używać GUI i publikuję to dla tych, którzy mogą nie znać opcji GUI).
źródło
Jeśli podoba Ci się GUI i korzystasz z systemu Windows, oto prosty sposób.
źródło
Możesz również łatwo porównać gałęzie dla zmienionych plików, używając na przykład TortoiseGit . Wystarczy kliknąć Przeglądaj referencje i wybrać gałęzie, które chcesz porównać.
Na przykład, jeśli porównasz swoją gałąź z master , otrzymasz w wyniku listę plików, które zostaną zmienione w master, jeśli zdecydujesz się połączyć swoją gałąź z master .
Pamiętaj, że uzyskasz inny wynik, jeśli porównasz master z gałęzią i twoją gałąź z kapitanem .
źródło