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 --all
nie działa, gdy używa się go do sklonowanego repozytorium.
git log
przyjmujecommittish
jako swój pierwszy argument:git log mybranch
(i wyświetla listę wszystkich gałęzigit branch
).committish
? Czy można uzyskać informacje za pomocą jednego polecenia git?--all
. Twoje polecenie jest prawidłowegit rev-list
parsowaniem,git log --all
jest OK.--all
, ale najwyraźniej nie działa to dla mnie w ten sposób. Nie rozumiem jego wyjaśnienia: Udawaj, jakby wszystkie referencjerefs/
były wymienione w wierszu poleceń jako<commit>
.Odpowiedzi:
Twoje polecenie jest słuszne, ponieważ używasz
--all
przełącznika, który daje wszystkie zatwierdzenia ze wszystkich gałęzi. Aby odpowiedzieć na pytanie zawarte w komentarzu, działa również w nagich repozytoriach.źródło
Zamiast tego
--all
możesz chcieć użyć--branches
, ponieważ--all
obejmuje równieżrefs/tags
irefs/remotes
.źródło