Jak sformatowatować log według własnych preferencji – opcja pretty
Polecenie git log
zna każdy użytkownik gita. Jest ono jednym z pierwszych, które poznajemy ucząc się tego systemu kontroli wersji. Pokazuje ono listę naszych commitów. W tym wpisie chciałem przedstawić jak można sformatować wygląd loga w dowolnym sposób jaki tylko chcemy. Log może pokazywać tylko te informacje, które są Nam naprawdę potrzebne.
Dla potrzeb tego wpisu sklonowałem sobie repozytorium kodu źródłowego gita i na nim będę uruchamiał wszystkie polecenia.
Podstawy
Naszym podstawowym poleceniem jest:
git log
Po jego wpisaniu w konsoli pokazuje Nam się lista commitów od najnowszego do najstarszego:
Widzimy następujące informacje o commicie:
- Hash sha-1 (na żółto).
- Informacje o branchach i tagach (na kolorowo).
- Autora.
- Datę powstania.
- Informacja dodania do commita (commit message)
Informacji pojawi się tyle ile zmieści się w oknie konsoli. Do następnej strony możemy przejść klawiszem SPACE, a powrót do strony poprzedniej jest klawiszem W. Wyjście z przeglądania loga powoduje naciśnięcie klawisza Q.
Log w takim formacie zajmuje dużo miejsca, na jednym ekranie mieści się około 5 ostatnich commitów. Dodatkowo moim zdaniem jest to trochę nieczytelne.
Aby zwiększyć liczbę commitów na jednym ekranie możemy użyć opcji --oneline
:
git log --oneline
Dostaniemy wtedy każdy commit w oddzielnej linii:
Przez to, że każdy commit znajduje się w oddzielnej linii, mamy tutaj mniej informacji. Nie widzimy kto i kiedy zrobił poszczególne commity.
Dostosowywanie wyglądu
Jeśli jednak chcielibyśmy widzieć każdego commita w oddzielnej linii wraz z informacją kto co zrobił i kiedy, to z pomocą przychodzi Nam opcja --pretty
. Dzięki Niej możemy sformatować wygląd loga w sposób jaki tylko chcemy.
git log -15 --pretty='%h %s %cr by %an%d'
Tak skonstruowane polecenie zwróci Nam coś takiego (-15
jest po to, aby pokazało Nam tylko 15 ostatnich commitów):
Już teraz mamy informację kiedy została wprowadzona zmiana i przez kogo 🙂 Korzystając z opcji --pretty
musimy używać odpowiednich placeholderów, które później zostaną zastąpione przez odpowiednie dane po uruchomieniu polecenia. O co w tym chodzi:
- %h – początek hasha sha-1.
- %s – informacja (commit message).
- %cr – data w formacie względnym, czyli informacja w kontekście do daty bieżącej np. 3 days ago, 3 months ago itd. Można użyć innej opcji, aby data była pokazana w standardowy sposób.
- %an – autor.
- %d – informacja o branchach i tagach.
Jednak brakuje tutaj kolorów i trochę to jest nieczytelne. Dodajmy więc kolorki 🙂
git log -15 --pretty='%C(yellow)%h%Creset %s %Cgreen%cr%Creset %C(yellow)[%an]%Cred%d'
Teraz nasz log wygląda tak:
Od razu bardziej czytelnie. Co zatem zrobiliśmy?
Dodaliśmy odpowiednie kolory przed odpowiednimi placeholderami. %C(yellow)%h
oznacza, że hash będzie na żółto, %Cgreen%cr
oznacza, że data będzie na zielono itd. UWAGA! Po każdej (oprócz ostatniej) zmianie koloru trzeba go zresetować dodając opcję %Creset
. Bez tego cała linia byłaby w takim kolorze jaki był ustawiony jako pierwszy.
Stworzenie aliasu
Oczywiście wpisanie takiego długiego polecenia za każdym razem będzie bardzo uciążliwe dlatego ja zrobiłem sobie do tego alias. Zamiast wpisywać całą komendę wpisuję tylko:
git lg
Nie będę szczegółowo opisywał działanie aliasów, to jest temat na oddzielny wpis. Jednak pokażę jak dodać alias do naszego wcześniejszego polecenia. Trzeba wpisać w konsoli:
git config --global alias.lg "log --pretty='%C(yellow)%h%Creset %s %Cgreen%cr%Creset %C(yellow)[%an]%Cred%d'"
Więcej o aliasiach można przeczytać w dokumentacji: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
Podsumowanie
Dzięki opcji --pretty
możemy sformatować sobie naszego loga jak tylko chcemy. Możemy na przykład zrobić, że nasz log był bardziej przyjazny do czytania. Może wyglądać na przykład tak:
lub tak:
Wszystko w tym przypadku zależy tylko od naszych preferencji. Dużo więcej opcji formatowania można znaleźć w dokumentacji git log w sekcji Pretty formats.
Źródło: https://git-scm.com/docs/git-log
2 Komentarze
dotnetomaniak.pl · 12 września 2018 o 7 h 27 min
Jak sformatowatować log według własnych preferencji – opcja pretty – Tomasz Prasołek
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl
Git log - dodatkowe opcje, które warto znać - Tomasz Prasołek · 26 września 2018 o 7 h 09 min
[…] Tak jak w jednym z poprzednich wpisów, wszystkie przykłady będą pokazywane na repozytorium kodu źródłowego gita. W przykładach będzie wpisywał polecenie git log z odpowiednimi opcjami, jednak na zrzutach ekranu będę korzystał z własnego aliasu git lg (ustawionego na polecenie git log). Jak dodać alias pisałem na końcu wpisu: Jak sformatowatować loga według własnych preferencji – opcja pretty. […]