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 не хранит номера ревизий?
Благодарность :