Git y registro de orden

Estaba intentando crear un orden lineal a partir de la salida del "git log", pero todos mis intentos fallaron. Lo que debo hacer es asignar un compromiso a la próxima versión que contenga ese compromiso. No puedo correr

git tag --contains <commit>

para cada confirmación, ya que nuestro repositorio contiene una cantidad extremadamente grande de confirmaciones (más de 300,000).

Primero intenté usar

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

Para obtener un orden lineal basado en el tiempo de compromiso. Sin embargo, esto no parece producir un resultado 100% preciso. Esto lleva a mi primera pregunta:

P1) ¿Cómo se almacenan los tiempos de confirmación de git, cuando las confirmaciones se insertan en el repositorio principal? ¿Almacena la hora actual de la máquina para cada confirmación, en UTC?

También miré el "registro de ayuda de git", y la documentación indica que, de forma predeterminada, el registro de git enumera las confirmaciones en orden cronológico. En mi proyecto, verifiqué si estaba introduciendo algún error, pero por lo que puedo decir, el código es correcto y el orden cronológico dado por el registro de git no es un orden lineal. Por último, mi pregunta es?

P2) ¿Cómo se puede obtener un orden lineal de "git log", dado que git no almacena números de revisión?

Gracias :)

Respuestas a la pregunta(1)

Su respuesta a la pregunta