Git и лог порядок

Я пытался создать линейный порядок из вывода «git log», но все мои попытки потерпели неудачу. Мне нужно сопоставить коммит со следующим выпуском, который содержит этот коммит. Я не могу бежать

git tag --contains <commit>

для каждого коммита, так как наш репозиторий содержит чрезвычайно большое количество коммитов (более 300 000).

Сначала я попробовал использовать

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

чтобы получить линейный порядок, основанный на времени фиксации. Однако это не дает 100% точного результата. Это приводит к моему первому вопросу:

Q1) Как git хранит время коммитов, когда коммиты помещаются в основной репозиторий? Сохраняет ли оно текущее машинное время для каждого коммита в UTC?

Я также посмотрел «git help log», и в документации говорится, что по умолчанию git log перечисляет коммиты в хронологическом порядке. В моем проекте я проверил, вносил ли я какую-либо ошибку, но насколько я могу судить, код верен, и хронологический порядок, заданный git log, не является линейным порядком. Наконец, мой вопрос?

Q2) Как можно получить линейный порядок из "git log", учитывая, что git не хранит номера ревизий?

Благодарность :

Ответы на вопрос(1)

Ваш ответ на вопрос