Jedną z najbardziej podstawowych usług świadczonych przez Git jest historia projektu. Ponieważ Git śledzi wszystkie zmiany w plikach dokonywane w repozytorium, może oferować bardzo zaawansowane funkcje rejestrowania. Możesz sprawdzać historię projektu na wiele różnych sposobów, a także wyodrębniać i wyświetlać różne dane za pomocą jednego elastycznego polecenia.

git log polecenie jest ogromne, największe ze wszystkich zwykłych poleceń Git. Jego instrukcja liczy ponad 2500 linijek. Na szczęście, git log zapewnia wiele z jego najbardziej użytecznych zachowań z zaledwie kilku kluczowych opcji.

Podstawowe rejestrowanie z zachowaniem domyślnym

Domyślnie, git log pokazuje listę zatwierdzeń z odwróconą chronologią. Każdy zatwierdzenie zawiera swój hash, autora, datę i komunikat zatwierdzenia:

Polecenie używa pagera (np. mniej, więcej), aby pokazać pełne dane wyjściowe, dzięki czemu można łatwo nawigować po wynikach. Możesz skonfigurować Git tak, aby używał wybranego programu, takiego jak najbardziej pager.

Oto kilka danych wyjściowych dziennika git z repozytorium kodu źródłowego git samo:

commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
pochodzenie/główny, pochodzenie/GŁOWICA)
Autor: Junio ​​C Hamano
Data: pon 14 czerwca 13:23:28 2021 +0900
Druga partia
Podpisany przez: Junio ​​C Hamano

Wynik zaczyna się od skrótu zatwierdzenia (670...), a następnie lista gałęzi, które aktualnie wskazują na to zatwierdzenie (GŁOWA -> mistrzitp.)

Kolejna linia opisuje autora tego zatwierdzenia, podając jego imię i nazwisko oraz adres e-mail.

Pełna data i godzina zatwierdzenia znajdują się w następnym wierszu.

Na koniec pojawia się pełna treść komunikatu o zatwierdzeniu. Możesz kontrolować większość wszystkiego, co oferuje git log, za pomocą opcji wiersza poleceń. Istnieją dwa główne rodzaje opcji:

  • Formatowanie, które definiuje sposób, w jaki Git wyświetla każde zatwierdzenie.
  • Filtrowanie, które określa, które zatwierdzenia git log obejmuje.

Oprócz opcji wiersza poleceń git log akceptuje argumenty określające pliki, zatwierdzenia, gałęzie lub inne typy odwołań. Stosują one dalsze filtrowanie.

Formatowanie danych wyjściowych dziennika Git

Jedną z najprostszych regulacji jest --jedna linia opcja, która daje bardzo krótki wynik:

git log --oneline

Każda linia w dzienniku zawiera teraz tylko skrócony skrót zatwierdzenia i temat wiadomość o zatwierdzeniu. To doskonały sposób na uzyskanie przeglądu ostatnich zmian w projekcie:

Niestety, bez innego kontekstu, te informacje nie zawsze są przydatne. Może dać ci niejasne wyczucie projektu, ale brakuje w nim dat i innych przydatnych informacji o autorach i plikach.

Wyświetlanie wykresu gałęzi Branch

--wykres opcja pozwala na wizualizację relacji pomiędzy oddziałami. To bardzo proste, ale może pomóc w rozwikłaniu skomplikowanej historii.

git log --oneline --graph

Związane z: Jak stworzyć nową gałąź w Git

Dostosowane ładne wyjście

Możesz uzyskać bardziej skomplikowane formatowanie, określając je szczegółowo za pomocą --ładny opcja. Składnia przechodzi od bardzo prostej do znacznie bardziej złożonej, więc zapoznaj się z instrukcją, aby uzyskać szczegółowe informacje.

git log --pretty=krótki

Jest zasadniczo taki sam jak git log bez daty lub pełnej wiadomości:

git log --pretty=oneline

Jest równa git log --oneline.

git log --ładne=pełniejsze

Zawiera dużo szczegółów. Oddziela nawet autora i autora, którzy teoretycznie mogą być różnymi ludźmi:

Z format: wariant, możesz dostarczyć ciąg zawierający dowolną zawartość, w tym symbole zastępcze, które są zastępowane różnymi danymi. Oto kilka przykładowych symboli zastępczych:

  • %H popełnij hasz
  • %h skrócony hash commit
  • %ogłoszenie data autora
  • %ar data autora, krewny
  • %s zatwierdź temat wiadomości
  • %b zatwierdź treść wiadomości
  • %p skrócone skróty rodzicielskie

Możesz dodać stałe znaki do wyjścia i pokolorować je. Ten przykład pokazuje również odmianę formatu daty:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Zauważ, że datę otaczają nawiasy. Niezależnie od wybranego formatowania, jeśli chcesz, aby dane wyjściowe były przydatne w potoku lub do innych form przetwarzania tekstu, należy rozważyć, jak rozgraniczyć każdą część danych wyjściowych.

Pokazywanie różnic w dzienniku

Ważnym szczegółem przy spojrzeniu na historię repozytorium są same różnice. W końcu reprezentują to, co faktycznie zmieniło się w kodzie! Na początek możesz uzyskać podsumowanie zmian wraz z każdym zatwierdzeniem, używając --shortstat:

git log --shortstat

To dodaje linię taką jak:

Zmieniono 1 plik, 48 wstawień(+), 2 usunięcia (-)

Na dole każdego zatwierdzenia. Często zobaczysz tego rodzaju podsumowanie — na przykład na wszystkich stronach w serwisie GitHub — i jest to przydatny sposób na szybką ocenę zakresu konkretnego zatwierdzenia. Aby uzyskać bardziej szczegółowe informacje, możesz dołączyć pełne dane wyjściowe (różnice) za pomocą -p flaga:

git log -p

Filtrowanie danych wyjściowych dziennika Git

Bez względu na to, jakie formatowanie zastosujesz, nadal będziesz widzieć pełny dziennik wszystkich zatwierdzeń w bieżącej gałęzi. Mimo że Git dzieli je na strony, nadal może być dużo danych wyjściowych. Poniższe opcje pozwalają dostosować, które zatwierdzenia zawiera dziennik.

Ograniczenie według kwoty

Jeśli chcesz tylko przyciąć wyniki, aby pokazać kilka ostatnich zatwierdzeń, użyj -[numer] składnia:

git log -2

Ograniczanie według daty

Aby ograniczyć zestaw zatwierdzeń do określonego zakresu dat, użyj --od (--po) i --aż do (--przed) opcje. Każdy z nich przyjmuje datę w formacie ISO 8601. Możesz użyć albo --od lub --aż do samodzielnie, lub oba razem, aby określić zakres.. Opcje --po i --przed są synonimami.

git log --since="2021-01-01" --until="2021-05-01"

Ograniczanie według pliku

Dziennik Git może skupiać się na konkretnym pliku, a nie na każdym pliku w repozytorium. Jest to świetne, aby pomóc Ci dowiedzieć się, jak dany plik zmieniał się w czasie. Po prostu dodaj nazwę pliku na końcu polecenia git:

nazwa pliku dziennika git

Zobaczysz tylko te zatwierdzenia, które miały wpływ Nazwa pliku.

Różnice między oddziałami

Podczas przeglądania dziennika oddziału możesz mieć pewne unikalne wymagania. Na przykład, zamiast zobaczyć całą historię, możesz po prostu zobaczyć, co zmieniło się w tej konkretnej gałęzi. Dziennik Git może pomóc za pośrednictwem ref1..ref2 składnia. Istnieją trzy nieco różne podejścia, których możesz użyć:

  1. Zobacz commity, które są w main, ale nie branch:
    git log --oneline origin/branch..origin/main
  2. Zobacz commity, które są w branch, ale nie w main:
    git log --oneline origin/Główny..pochodzenie/gałąź
  3. Zobacz commity, które istnieją tylko w branch lub main:
    git log --oneline pochodzenie/gałąź...pochodzenie/główne

Tak jak możesz przeglądać historię między oddziałami za pomocą ref1..ref2 składni, w ten sam sposób można również przeglądać historię między tagami. W końcu zarówno tagi, jak i gałęzie są typami referencji.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Jeśli przygotowujesz informacje o wydaniu dla większego projektu, git shortlog powinien być twoim pierwszym portem. Tworzy listę autorów wraz z tematami zatwierdzeń. Możesz przekazać mu zakres referencyjny, aby ograniczyć historię w podobny sposób do git log:

git shortlog v2.32.0-rc3..v2.32.0

polecenie git show jest jeszcze bardziej wszechstronny niż git log. Może pracować z tagami i innymi typami obiektów git poza historią zatwierdzenia. Dzieli się wieloma opcjami z git log, ale naprawdę będziesz go potrzebować tylko wtedy, gdy musisz zagłębić się w szczegóły niższego poziomu.

Przejrzyj przeszłość za pomocą Git Log

Git log to skomplikowane polecenie, ale możesz uzyskać wiele korzyści z jego najbardziej podstawowych opcji. Przeglądanie historii repozytorium to doskonały sposób na zrozumienie, jak często zachodzą zmiany i ile osób je wprowadza. Gdy dobrze zrozumiesz historię projektu, będziesz mógł sam wnieść do niego swój wkład.

E-mail
Dołącz do trendu Social Coding i weź udział w repozytoriach GitHub

Chcesz ćwiczyć swoje mięśnie kodowania i pomagać w projektach open source? Oto jak współtworzyć GitHub.

Czytaj dalej

Powiązane tematy
  • Programowanie
  • GitHub
  • Wskazówki dotyczące kodowania
O autorze
Bobby Jack (54 opublikowane artykuły)

Bobby jest entuzjastą technologii, który przez prawie dwie dekady pracował jako programista. Pasjonuje się grami, pracuje jako redaktor recenzji w magazynie Switch Player i jest zanurzony we wszystkich aspektach publikowania online i tworzenia stron internetowych.

Więcej od Bobby'ego Jacka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w e-mailu, który właśnie do Ciebie wysłaliśmy.

.