Jak używać Git Log do formatowania historii zmian?



Git to narzędzie, które pomaga organizować i zarządzać kodem źródłowym aplikacji. Dowiedz się wszystkiego o poleceniu historii formatu dziennika git i jak go używać.

W tym artykule omówimy niektóre zaawansowane opcje formatowania i drukowania dzienników zmian w celu pobrania potrzebnych informacji z historii dziennika projektu. Skoro już wiemy, prowadzi dziennik zmian wprowadzonych do historii projektu, teraz zbadamy więcej sposobów, w jakie polecenie „git log” jest pomocne.

Po pierwsze, przechodzę do / sprawdzam gałąź „feature1”, aby uzyskać wygodną i krótszą historię.
Użyj poleceń -





$cd myProj–Przełącz się na projekt git

$funkcja kasy git 1–Skocz do gałęzi „feature1”



1. Zatwierdź formatowanie

1.1 Wydrukuj zawartość wyjściową w podanym formacie

Składnia: git log --pretty [=]

gdzie, może być jednym z jedna linia, krótki, średni, pełny, folarz, e-mail, surowy, i format:
Kiedy = część jest pominięta, domyślnie średni.

1.1.1 -pretty = oneline

Całkiem drukuj dziennik zatwierdzeń w „jednej linii”
Komenda: git log --pretty = oneline
Formatuje dane wyjściowe w kolejności:




Commit - Historia formatu dziennika Gita - Edureka

1.1.2 -pretty = short

Formatuj dane wyjściowe zatwierdzenia jako „krótkie” w formacie:
zatwierdzenie (refname)
Autor:



1.1.3 - ładna = średnia

Komenda: git log --pretty = medium
Wydrukuj wynik zatwierdzenia w formacie „średni”:
popełnić
Autor :
Data:


1.1.4 -pretty = full

Komenda: git log --pretty = full
Dane wyjściowe mają format:
zatwierdzenie (refname)
Autor:
Popełnić:


1.1.5 - ładna = pełniejsza

Komenda: git log --pretty = fuller
zatwierdzenie (refname)
Autor:
Data autora :
Popełnić:
CommitDate:


1.1.6 –pretty = e-mail

Komenda: git log --pretty = email
Wydrukuj dane wyjściowe dziennika w formacie e-mail:
Od
Od:
Data:
Przedmiot: [ŁATA]


1.1.7 –pretty = raw

Komenda: git log --pretty = raw
Surowy format wyjściowy dziennika pokazuje całe zatwierdzenie dokładnie tak, jak jest zapisane w obiekcie zatwierdzenia.
popełnić
drzewo
rodzic
autor
popełnić

1.1.8 –format:: Formatowanie niestandardowe

Format umożliwia określenie, które informacje o obiekcie zatwierdzenia mają zostać wydrukowane w dzienniku wyjściowym zatwierdzenia
Rozważmy różne symbole zastępcze, które zapewnia ta opcja, podobnie jak funkcja „C printf” za pomocą fragmentów kodu:

Komenda: git log --pretty = format: '% h% ad | % s% d [% an] '--date = short
Format wyjściowy:
| [imię autora]

% h = Skrócone identyfikatory hash-id / sha1commit
% H = długie identyfikatory sha-1
%do = data autora
% s = zatwierdzić wiersz tytułu tematu
%re = nazwy wskaźników referencyjnych (gałęzi, znaczników)
%na = nazwisko autora
-data = short: Drukuj tylko datę, a nie godzinę w czytelnym formacie

A teraz co powiesz na uczynienie tego wyjścia bardziej przyjaznym dla człowieka przy użyciu kolorów.
Komenda:
git log --pretty = format: '% C (żółty)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short


Inne symbole zastępcze użyte w powyższym fragmencie kodu to:
% C (żółty) : Zmień kolor następującego sznurka na żółty
% Creset : Zresetuj następujący ciąg z powrotem do domyślnego (białego) koloru
% Cgreen : zmień następujący ciąg na zielony
%Zgaduję: Zmień następujący ciąg na czerwony
% Cblue: Spraw, aby imię autora było niebieskie

Nie musisz za każdym razem pamiętać i pisać całego polecenia, wystarczy użyć krótkiej nazwy jako alias git jak pokazano niżej:
Komenda:
git config --global alias.c-hist 'log --pretty = format:'% C (żółty)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

„C-hist” reprezentuje do ustomizowane hist ory
Tak więc, jak można było zauważyć, ustawiam mój globalny konfiguracja git plik z wartościami.

jak używać sprite'ów CSS

Teraz, aby sprawdzić historię bieżącej gałęzi, wystarczy uruchomić polecenie, na przykład:
Komenda: przejdź do c-hist

1.2 –abbrev-commit: Skróć git commit hash-id

Komenda: git log --abbrev-commit
Pełna nazwa obiektu zatwierdzenia szesnastkowego 40 bajtów jest skracana do domyślnych 7 bajtów.


Połączmy to z „--jedna linia„Opcja zapewniająca wygodny widok, na przykład:
Komenda: git log --abbrev-commit --oneline

Bardziej ekscytujące jest to, że możesz również określić długość bajtów identyfikatorów sha-1 za pomocą opcji „–abbrev =”, jak pokazano poniżej:
Komenda: git log --abbrev-commit --abbrev = 5 --oneline



Wyraźnie widać, że podświetlone identyfikatory sha-1 są zmniejszane do rozmiaru 5 bajtów.

1.3 –no-abbrev-commit

Pokaż pełną 40-bajtową nazwę obiektu zatwierdzenia szesnastkowego.
To zaprzecza –Abbrev-commit i opcje, które implikują
tak jak „–oneline”.
Komenda: git log --pretty = oneline --no-abbrev-commit



1.4 - data-względna

Komenda: git log - data-względna

Należy pamiętać, że ten podświetlony czas może ulec zmianie w zależności od czasu wykonania polecenia w systemie.

1,5 - data =

Możesz również sformatować datę dzienników zatwierdzeń w dowolnej z następujących opcji formatowania:

1.5.1 - data = względna

Komenda :git log --date = względna
Jest to równoznaczne z powyższym poleceniem „git log - data-względna”I drukuje te same zatwierdzenia.

1.5.2 - data = lokalna

Komenda : git log --date = local

1.5.3 –date = iso

Komenda: git log --date = iso

1.5.4 -date = iso-ścisłe

Komenda: git log --date = iso-strict

1.5.5 - data = rfc

Komenda: git log --date = rfc

1.5.6 - data = krótka

Komenda: git log --date = short

1.5.7 - data = nieprzetworzona (pokazuje datę w sekundach)

Komenda: git log --date = raw
Wydrukuj czas w sekundach od momentu unix epoc czas (01 stycznia 1970), a następnie strefę czasową.

1.5.8 - data = człowiek

Komenda: git log --date = human

1.5.9 - data = unix

Wyświetla datę jako unix epoc (UTC) czas.
Komenda: git log --date = unix

1,6 - rodzice

Wydrukuj także rodziców każdego zatwierdzenia w formacie:
Komenda: git log --parents
Polecenie wyjścia Oneliner: git log --parents --oneline

Punkty, na które należy zwrócić uwagę:
C366419 jest zobowiązaniem scalającym, dlatego ma odpowiednio 2 rodziców: feeb30c i 4920adc
Również

1d67b50 jest zatwierdzeniem scalającym, które powstało w wyniku scalania f2ff2e4 i abb694b
078f9f5 jest zatwierdzeniem scalającym utworzonym przez scalenie 9a2412e i ab3a5e5
Natomiast, 86792c6 jest początkowym zatwierdzeniem, stąd brak rodzica.

1,7 - dzieci

Wydrukuj również dzieci w formularzu
Komenda: git log --children --oneline

Uwaga :
006b9ce jest najnowszym zatwierdzeniem, dlatego nie ma jeszcze obiektu commit podrzędnego. Następna zmiana, którą dokonasz i zatwierdzisz w tej gałęzi, będzie obiektem podrzędnym tego ostatniego identyfikatora sha-1.

1.8 - wykres

Narysuj tekstową graficzną reprezentację historii zatwierdzeń przed identyfikatorami sha-1.
Komenda: git log --graph
Ulepszona wydajność onelinera: git log --graph --oneline


Pozwala to zrozumieć, kiedy, jak i dlaczego oraz inne gałęzie zostały scalone z aktualnie pobraną gałęzią.

1,9 -pokaż-liniowa-przerwa

Komenda: git log --show-linear-break
Jest to przydatne polecenie, aby wskazać barierę między 2 kolejnymi zatwierdzeniami, które nie należą do gałęzi liniowej, innymi słowy, zatwierdzeniami pochodzącymi z różnych gałęzi.


Porównaj powyższe dane wyjściowe z wynikami polecenia „git log –graph”, które jasno pokazują, w jaki sposób zostały scalone zatwierdzenia typu „linear-break”.

Bonus: podsumuj dane wyjściowe dziennika git: „git shortlog”

git shortlog„Polecenie kategoryzuje dzienniki zatwierdzeń według autora i drukuje podsumowanie przeglądu, wskazujące zatwierdzenia dokonane przez każdego autora.
Komenda: git log shortlog

Komenda : git log shortlog -s
-s oznacza –s summary, pomija opis zatwierdzenia i po prostu wypisuje liczbę zatwierdzeń każdego autora, na przykład:

Ponadto można również sformatować wynik przy użyciu tych samych symboli zastępczych, które omówiono w sekcji „--pretty = format' opcja
Wypróbuj polecenie: git shortlog --format = '% h | % s '

Dlatego zgodzisz się, że to wyjście ma większy sens, ponieważ pokazuje id i dla każdego autora wraz z całkowitą liczbą zatwierdzeń.

Uwaga : Warto zauważyć, że bardzo łatwo można znaleźć gałąź, która wykonała dane zatwierdzenie. Warto pogłębić tę dyskusję w kolejnych artykułach.

Więc z tym dochodzimy do końcaHistoria formatu dziennika Gitblog, mam nadzieję, że znalazłeś to pouczające.

W tym poście poznaliśmy kilka technik formatowania, które umożliwiają drukowanie informacji o projekcie w bardziej dostosowany i przyjazny dla użytkownika sposób. Powinieneś teraz wiedzieć, jak efektywnie używać parametrów polecenia „git log”, aby wyciągnąć wszelkie potrzebne informacje o kodzie źródłowym z historii zatwierdzeń. A więc dochodzimy do końca tego artykułu, mam nadzieję, że uznałeś go za pouczający.

Jeśli chcesz dowiedzieć się więcej, sprawdź to autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zrozumieć, czym jest DevOps i zdobyć wiedzę na temat różnych procesów i narzędzi DevOps, takich jak Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT do automatyzacji wielu kroków w SDLC.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego artykułu na temat „Historia formatów dziennika Git”, a my skontaktujemy się z Tobą.