Jak pobrać dziennik ze wszystkich gałęzi jednocześnie dla autora?

213

Muszę uzyskać raport wszystkich zatwierdzeń dokonanych przez autora. Do tej pory mam skrypt, który otacza następujące polecenie:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

To działa dobrze. Jednak raportuje tylko działania dla bieżącego oddziału. Czy jest jakaś opcja, która rejestrowałaby komunikaty zatwierdzenia dla autora ze wszystkich gałęzi , nie tylko z bieżącej?

Innymi słowy, czy git może wykonać odwrotną (posortowaną według czasu) sekwencję wszystkich zatwierdzeń w repozytorium i wyodrębnić informacje dziennika z tej sekwencji?

Rozwiązane: (skopiowane z poniższego komentarza, który w przeciwnym razie jest ukryty)

Problem polegał na tym, że mam jedno repozytorium i dwa klony do równoczesnej pracy na dwóch gałęziach. Wprowadziłem zmiany do repozytorium źródłowego, ale zapomniałem pobrać zmiany do sklonowanego repozytorium. W ten sposób wydawało się, że --allnie działa, gdy używa się go do sklonowanego repozytorium.

pepr
źródło
Zgadnij, że możesz napisać do tego skrypt powłoki: git logprzyjmuje committishjako swój pierwszy argument: git log mybranch(i wyświetla listę wszystkich gałęzi git branch).
Alexander Pavlov
@AlexanderPavlov: Prawdopodobnie nie rozumiem. Co to jest committish? Czy można uzyskać informacje za pomocą jednego polecenia git?
pepr
1
Dostaję zatwierdzenia ze wszystkich gałęzi, nie tylko bieżącej? Jest to oczekiwane, ponieważ zapewniasz --all. Twoje polecenie jest prawidłowe
CharlesB
1
@AlexanderPavlov: Nie przejmuj się git rev-listparsowaniem, git log --alljest OK.
CharlesB
1
@CharlesB: Tak myślałem o tym --all, ale najwyraźniej nie działa to dla mnie w ten sposób. Nie rozumiem jego wyjaśnienia: Udawaj, jakby wszystkie referencje refs/były wymienione w wierszu poleceń jako <commit>.
pepr

Odpowiedzi:

186

Twoje polecenie jest słuszne, ponieważ używasz --allprzełącznika, który daje wszystkie zatwierdzenia ze wszystkich gałęzi. Aby odpowiedzieć na pytanie zawarte w komentarzu, działa również w nagich repozytoriach.

CharlesB
źródło
64

Zamiast tego --allmożesz chcieć użyć --branches, ponieważ --allobejmuje również refs/tagsi refs/remotes.

Gert Hengeveld
źródło