Wyświetl dziennik git bez zatwierdzeń łączenia


88

Próbuję wyświetlić zatwierdzenia dokonane przez określonego użytkownika i chcę usunąć z danych wyjściowych wszelkie scalenia wykonane przez użytkownika. Jak mogę to zrobić?

Mogę sprawdzić, czy użytkownik używa zatwierdzeń git log --author=<name>, ale nie mogę usunąć zatwierdzeń scalających z danych wyjściowych.

PS: Konflikty scalania nie występują w przepływie pracy danego repozytorium, wszystkie gałęzie są ponownie bazowane przed scaleniem do mastera, więc można bezpiecznie usunąć zatwierdzenia scalania z wyjścia, i podobnie dwie gałęzie funkcji nie są łączone ze sobą podnosząc możliwość.


2
Co by było, gdyby fuzja miała konflikt i musiał go rozwiązać?
Joe Phillips

2
@JoePhilllips To nie dzieje się w przepływie pracy danego repozytorium, wszystkie gałęzie są ponownie bazowane przed połączeniem w master.
mu 無

6
użyjgit log --no-merges
0xAX

1
@ 0xAX Czy możesz napisać to jako odpowiedź, zaakceptuję to.
mu 無

Odpowiedzi:


133

posługiwać się

git log --author=<name> --no-merges

Dodatkowo --first-parentopcja może dać przydatny wynik:

--first-parent Śledzi tylko pierwsze zatwierdzenie rodzica po zobaczeniu zatwierdzenia scalającego. Ta opcja może dać lepszy przegląd podczas przeglądania ewolucji konkretnej gałęzi tematu, ponieważ scalanie do gałęzi tematu zwykle polega tylko na dostosowywaniu się do zaktualizowanego od czasu do czasu, a ta opcja pozwala zignorować poszczególne zatwierdzenia wprowadzone do twoja historia przez takie połączenie. Nie można łączyć z --bisect.


jeszcze ładniej z --pretty=format:"%h%x09%an%x09%ad%x09%s"
k1eran

1
@ k1eran to obcina treść zatwierdzenia (zakładając, że istnieje)
Erythros

1
@ Erythros zrozumiał i uważam, że przydatne jest uzyskanie zwięzłego, czytelnego podsumowania zatwierdzeń.
k1eran

Lub w tym kolory i wykreslog --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent
Highmastdon

18

Możesz pominąć połączenia z --no-merges:

git log --no-merges --author=<name>

Zobacz stronę podręcznika git log po szczegóły.


2
To wyklucza tylko zatwierdzenia scalania. Ale normalne zatwierdzenia wewnątrz tej gałęzi upstream są nadal widoczne.
Shiplu Mokaddim
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.