Kolejność Git and Log

Próbowałem stworzyć liniowy porządek z wyjścia „git log”, ale wszystkie moje próby nie powiodły się. To, co muszę zrobić, to zmapować zatwierdzenie do następnej wersji zawierającej to zatwierdzenie. Nie mogę biec

git tag --contains <commit>

dla każdego zatwierdzenia, ponieważ nasze repozytorium zawiera bardzo dużą liczbę zatwierdzeń (ponad 300 000).

Najpierw próbowałem użyć

git log --pretty=format:"%ct%H" | sort --key=1,10 

aby uzyskać liniowy porządek oparty na czasie zatwierdzenia. Wydaje się jednak, że nie daje to 100% dokładnego wyniku. To prowadzi do mojego pierwszego pytania:

P1) W jaki sposób git przechowuje czasy zatwierdzania, gdy zatwierdzenia są wypychane do głównego repozytorium? Czy przechowuje bieżący czas komputera dla każdego zatwierdzenia w UTC?

Sprawdziłem także „dziennik pomocy git”, a dokumentacja stwierdza, że ​​domyślnie dziennik git wyświetla zatwierdzenia w porządku chronologicznym. W moim projekcie sprawdziłem, czy wprowadzam jakiś błąd, ale o ile wiem, kod jest poprawny, a porządek chronologiczny podany przez dziennik git nie jest porządkiem liniowym. Wreszcie moje pytanie brzmi?

P2) Jak można uzyskać liniowy porządek z „git log”, biorąc pod uwagę, że git nie przechowuje numerów wersji?

Dzięki :)

questionAnswers(1)

yourAnswerToTheQuestion