Porównanie commitów między branchami – git show-branch
Jeśli pracujecie z kilkoma branchami, można czasami się trochę pogubić. Gdzie to skomitowaliśmy? Czy zrobiliśmy merge’a na odpowiedni branch? Aby porównać dwa branche można skorzystać z jakiejś aplikacji z GUI do obsługi gita np. SourceTree. Aplikacja ładnie wizualizuje nasze branche, jednak albo pokazuje jeden, albo wszystkie. Co zrobić jak chcemy porównać commity między dwoma konkretnymi branchami? Z pomocą przychodzi Nam polecenie git show-branch
.
git show-branch
Do pokazania jak to działa korzystam ze swojego przykładowego repozytorium. Załóżmy, że mamy branch master i feature. Chce zobaczyć jakimi commitami się różnią:
git show-branch master feature
Wynik tego polecenia może być na pierwszy rzut oka mało czytelny, ale po krótkim wyjaśnieniu wszystko stanie się jasne.
Wyjaśnię teraz linia po linii o co chodzi:
Pierwsze dwie linie to oznaczenia dla branchy. W nawiasie kwadratowym jest nazwa brancha. Dodatkowo wypisana jest wiadomość ostatniego commita z każdego brancha.
Pierwsza kolumna pierwszego wiersza – oznaczona wykrzyknikiem – to kolumna dla commitów z master.
Druga kolumna drugiego wiersza – oznaczona gwiazdką – to kolumna dla commitów z feature.
Gwiazdką zawsze jest oznaczany branch na którym aktualnie się znajdujemy. Widać, że ja to polecenie wykonałem na branchu feature.
Trzecia linia to separator między oznaczeniami, a commitami. Dalej mamy pokazane commity z obu branchy.
Pierwszy i drugi znak każdego kolejnego wiersza oznaczają do którego brancha należy ten commit.
Linia nr 4 – plus w pierwszej kolumnie – commit z mastera.
Linia nr 5 – gwiazdka w drugiej kolumnie – commit z feature.
itd.
Linia nr 8 – plus i gwiazdka – to jest nasz punkt wspólny. To jest commit, który znajduje się na obu branchach.
Dodatkowe opcje
Jeśli chcemy zobaczyć tylko commity nie istniejące na branchu podanym jako pierwszy:
git show-branch --topics feature master
Polecenie nie pokazuje już commitów z brancha feature, tylko 1 commit z master, którego nie ma na branchu na którym jesteśmy. Na końcu oczywiście jest pokazany wspólny przodek.
Można również wyłączyć nazwę branchy przy commitach (ale nie przy oznaczeniach 🙂 ) opcją --no-name
:
git show-branch --no-name feature master
Jak widać nazwy branchy są tylko w pierwszych dwóch liniach.
Podsumowanie
W ten oto łatwy sposób można zobaczyć jakimi commitami różnią się branche. Używając tego polecenia można porównać więcej niż 2 branche. Nie trzeba porównywać tylko lokalnych, można również porównywać branche zdalne.
1 Komentarz
dotnetomaniak.pl · 17 października 2018 o 14 h 18 min
Porównanie commitów między branchami – git show-branch – Tomasz Prasołek
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl