git author date false tan pronto como se realizó la modificación o rebase

Observo un comportamiento extraño en mi historia de git:

Puedo comprometerme normalmente usando git gui y la date del autor y la date del committer son correctas cuando se visualizan en gitk .

Pero tan pronto como realizo una modificación a través de git gui o una rebase a través de git bash, todos los commit posteriores tienen la date del committer correcta y la date del autor es la misma que antes de este process de reescritura, a veces varios días en el pasado.

Cuando cierro git-gui, gitk y su padre git bash y los vuelvo a abrir, la date para los próximos commits es correcta de nuevo – hasta la próxima rebase / modificar

git-gui versión 0.20.GITGUI (utilizado en Windows)

git versión 2.10.0.windows.1 (x64 bit)

Razón

Esto se debe a un error en Git Gui (en Git para Windows> = v2.8.2.windows.1) que establece las variables de entorno GIT_AUTHOR_NAME , GIT_AUTHOR_EMAIL y GIT_AUTHOR_DATE cuando se confirma con ammend. Estas variables anulan todas las configuraciones de autor para cualquier operación que cree commits, como rebase, commit, merge, etc.

Fijar

Esto debería solucionarse en la próxima versión (v2.11.x?) De G4W.

Solución

Cierre Git Gui inmediatamente después de un commit con ammend.

Este comportamiento es por layout. Git tiene valores separados para la date del autor y la date del comitente.

La date del autor refleja el momento en que se creó este compromiso por primera vez, y se conserva.

La date del compromiso se actualiza cada vez que modifica, rebase, etc.

Para ver ambos, git log –pretty = fuller.

Si desea restablecer la hora del autor, git commit –amend –reset-author.