Jak mogę wyświetlić dane wyjściowe dziennika git z (przynajmniej) tymi informacjami:
* author
* commit date
* change
Chcę go skompresować do jednego wiersza na wpis w dzienniku. Jaki jest najkrótszy możliwy format?
(próbowano, --format=oneline
ale nie pokazuje daty)
git
formatting
logging
Jesper Rønn-Jensen
źródło
źródło
Odpowiedzi:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
wykonał robotę. To daje:
Zainspirowany pytaniem typu stackoverflow: „wyjście git log jak svn ls -v” , odkryłem, że mogę dodać dokładnie potrzebne parametry.
Aby skrócić datę (nie pokazuje godziny), użyj
--date=short
Na wypadek gdybyś był ciekawy, jakie były różne opcje:
%h
= skrót skrótu zatwierdzenia%x09
= tab (znak dla kodu 9)%an
= nazwa%ad
autora = data autora (format uwzględnia --date = opcja)%s
= tematOd kernel.org/pub/software/scm /git/docs/git-log.html (sekcja WSTĘPNE FORMATY) przez komentarz Vivek.
źródło
date=short
jak sugeruje cdunn2001 w innej odpowiedzigit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
Korzystam z tych dwóch ustawień .gitconfig:
% ad to data autora, którą można zastąpić
--date
lub opcję określoną w sekcji [log] w .gitconfig. Lubię datę względną, ponieważ daje natychmiastowe wrażenie, kiedy coś zostało popełnione. Dane wyjściowe wyglądają tak:Wszystko jest oczywiście w kolorze, więc łatwo jest rozróżnić różne części linii kłody. Jest także domyślny podczas pisania
git log
ze względu na sekcję [format].AKTUALIZACJA 2014: Ponieważ git obsługuje teraz padding, mam ładną poprawkę do powyższej wersji:
To prawo wyrównuje daty względne, a lewe wyrównuje nazwy osoby wykonującej, co oznacza, że wyglądasz jak kolumna i jest przyjemny dla oczu.
Zrzut ekranuAKTUALIZACJA 2016: Ponieważ podpisywanie zatwierdzeń przez GPG staje się rzeczą, pomyślałem, że zaktualizuję ten post o wersję zawierającą weryfikację podpisu (na zrzucie ekranu jest to magenta litera zaraz po zatwierdzeniu). Krótkie wyjaśnienie flagi:
Inne zmiany obejmują:
git log -g
teraz zawiera selektor reflogu.3 years, 4..
)%<(7,trunc)
lub sprawdzić funkcję git .mailmap, aby skrócić nazwy komend)Oto konfiguracja:
W sumie wyrównanie kolumn jest teraz znacznie lepiej zachowane kosztem niektórych (miejmy nadzieję) bezużytecznych znaków. Jeśli masz jakieś ulepszenia, możesz je edytować, chciałbym, aby kolor wiadomości zależał od tego, czy zatwierdzenie jest podpisane, ale wydaje się, że to nie jest możliwe atm.
Zrzut ekranuźródło
tig
odpowiedź zapewnia interaktywność bez wymaganej konfiguracji, ale ta jest genialna - daje żądane wyjście w jednym wierszu (z kolorem do uruchomienia!) Za pomocą standardowej komendy „git log”. Bardzo dobrze.>
<
już znaków. Próbowałem dodać%m
do formatu, ale potem>
pojawia się za każdym razem, nawet normalniegit log
. Jakieś wskazówki, jak znaki zachowują się normalnie w tym formacie?--oneline
to tylko alias--pretty=oneline
.format.pretty
jest domyślnym ładnym formatem, ale nie ma sposobu, aby zastąpićformat.oneline
afaik. Chciałbym pominąćpretty = shortlog
wiersz w konfiguracji, a następnie utworzyć alias do uruchomieniagit log --pretty=shortlog
.Użyj,
--date=
aby ustawić format datyźródło
Możesz użyć tego:
Uwaga
-7
na końcu, aby wyświetlić tylko 7 ostatnich wpisów.Popatrz:
źródło
--date=short
można dodać, aby był krótszy.git log
zawsze pokazuje historię aktualnie wyewidencjonowanego oddziału.%d
aby przywrócić „nazwy ref”, takie jak(HEAD -> master)
.reset
zamiastauto
?tig jest możliwą alternatywą dla używania komendy git log , dostępnej w głównych dystrybucjach open source * nix.
W systemie Debian lub Ubuntu spróbuj zainstalować i uruchomić w następujący sposób:
(tig zostanie zainstalowany)
(log jest wyświetlany w pager w następujący sposób, z hashem bieżącego zatwierdzenia wyświetlanym u dołu)
Ponieważ przecena nie obsługuje kolorowania tekstu, wyobraź sobie: kolumna 1: niebieski; kolumna 2: zielony; kolumna 3: domyślny kolor tekstu. Ostatnia linia, podświetlona. Naciśnij Q lub q, aby wyjść.
tig
uzasadnia kolumny bez poszarpanych krawędzi , czego nie gwarantuje karta ascii (% x09).W przypadku formatu krótkiej daty naciśnij D (uwaga: mała litera d otwiera widok różnicy). Skonfiguruj go na stałe, dodając
show-date = short
do ~ / .tigrc; lub w[tig]
sekcji .git / config lub ~ / .gitconfig.Aby zobaczyć całą zmianę :
Ponieważ tig jest odrębny od git i najwyraźniej * specyficzny dla * nix, prawdopodobnie wymaga instalacji Cygwina w systemie Windows. Ale dla Fedory wierzę polecenia instalują są
$ su
,(enter root password)
,# yum install tig
. Dla FreeBSD try% su
,(enter root password)
,# pkg_add -r tig
.Nawiasem mówiąc, tig jest dobry na wiele więcej niż szybki przegląd dziennika: Zrzuty ekranu i instrukcja
źródło
tig
w mojej konsoli po prostu daje mi błąd-bash: tig: command not found
pact install tig
lub
... riffing na powyższej odpowiedzi cdunn2001: stracę e-mail autora i podam tylko nazwisko autora, jak na Jespera i Knittla, ale zgodnie z pomysłem cdunn2001, aby zachować dane wyjściowe w kolumnach o stałej szerokości dla ułatwienia czytania ( świetny pomysł!). Zamiast oddzielnej lewej, wyrównanej kolumny dla nazwiska autora, zawijam jednak tę flagę na końcu polecenia w nawiasach lub przesuwam za pomocą potoku. (Naprawdę może to być dowolny znak, który służy jako wizualna pomoc w czytaniu danych wyjściowych ... aczkolwiek sensowne jest unikanie ukośników wstecz i do przodu w celu zmniejszenia mylenia danych wyjściowych z katalogiem lub czymś innym.)
Przykładowe dane wyjściowe:
źródło
Użyj predefiniowanego aliasu git, tj .:
Utworzono raz za pomocą polecenia:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
Lub bardziej kolorowe z wykresem:
źródło
Wynik:
Rzeczy o stałej szerokości są pierwsze. Najmniej ważna część - domena e-mail - jest ostatnia i łatwa do filtrowania.
źródło
Aby pokazać zatwierdzone przeze mnie zobowiązania, które są gotowe do wykonania
Dane wyjściowe wyglądają mniej więcej tak:
Tam, gdzie pierwsza kolumna jest wyświetlana na żółto, a „H” „m” i „t” w nawiasie wskazują HEAD, master i trunk i pojawiają się w swoich zwykłych „dekoracyjnych” kolorach
Oto podział linii, dzięki czemu możesz zobaczyć, co robi:
Pseudonim „zainscenizowałem” za pomocą:
(Czy istnieje łatwiejszy sposób na ucieczkę? Trudno było ustalić, co wymagało ucieczki)
źródło
Wszystkie wyżej wymienione sugestie wykorzystują
%s
symbol zastępczy dla tematu. Polecam użyć,%B
ponieważ%s
formatowanie zachowuje nowe wiersze, a komunikat zatwierdzenia wielu wierszy jest zgnieciony.źródło
Uruchom to w folderze projektu:
A jeśli chcesz, dodaj tę linię do ~ / .gitconfig:
źródło
Spróbuj użyć git log --pretty = fuller, wyświetli się: - Autor: Data autora: Data zatwierdzenia: Data zatwierdzenia:
Mam nadzieję że to pomoże.
źródło