Busco mis loggings de git y encuentro que AuthorDate y CommitDate son ligeramente diferentes para algunos de mis commits:
commit 3a5912f90dc5227f308e99f95152fbee2301c59a Author: <hidden> AuthorDate: Fri Jun 15 10:57:22 2012 +0800 Commit: <hidden> CommitDate: Fri Jun 15 11:14:37 2012 +0800
El autor y el compromiso son el mismo yo.
¿Como sucedió esto? Estoy desconcertado por días.
Hay más (ocurre en 17 de las 341 confirmaciones):
+------------------------------+-------------------------------+ | from_unixtime(authonetworking_date) | from_unixtime(committed_date) | +------------------------------+-------------------------------+ | 2012-06-15 10:57:22 | 2012-06-15 11:14:37 | | 2012-06-15 14:39:54 | 2012-06-15 14:48:57 | | 2012-06-19 12:28:21 | 2012-06-19 12:29:41 | | 2012-06-21 18:16:25 | 2012-06-21 18:28:48 | | 2012-06-26 17:30:54 | 2012-06-26 17:33:55 | | 2012-07-13 11:41:43 | 2012-07-13 11:42:17 | | 2012-07-13 11:56:02 | 2012-07-13 12:13:22 | | 2012-07-13 12:05:09 | 2012-07-13 12:12:24 | | 2012-07-12 18:38:49 | 2012-07-13 12:26:35 | | 2012-07-13 11:00:47 | 2012-07-13 12:25:15 | | 2012-07-16 14:10:54 | 2012-07-16 14:15:01 | | 2012-07-13 12:56:51 | 2012-07-16 13:49:48 | | 2012-07-16 14:10:54 | 2012-07-16 14:19:46 | | 2012-07-24 16:05:05 | 2012-07-24 16:05:48 | | 2012-07-24 17:42:58 | 2012-07-24 17:43:33 | | 2012-07-24 17:42:58 | 2012-07-24 17:45:18 | | 2012-07-26 16:55:40 | 2012-07-26 16:55:53 | +------------------------------+-------------------------------+
Las notas de date del autor cuando este compromiso se realizó originalmente (es decir, cuando finalizó la git commit
). De acuerdo con los documentos de git commit
, la date del autor podría --date
usando el --date
.
La date de confirmación se cambia cada vez que se modifica la confirmación, por ejemplo, al volver a establecer la base de la bifurcación donde está la confirmación en otra sucursal.
Lo mismo podría suceder si realiza su confirmación y envía el parche a otro para aplicar el parche en otro repository: la date de autor será la date de su git commit
, la date de confirmación se establecerá en esa date cuando el parche esté aplicado en el otro repository.
Si envía el parche a dos colegas, habrá una date de autor pero dos dates de confirmación diferentes.
Esto también se menciona en el Libro de Git :
Usted se estará preguntando cuál es la diferencia entre autor y committer . El autor es la persona que originalmente escribió el parche, mientras que el autor es la persona que aplicó el parche por última vez. Por lo tanto, si envía un parche a un proyecto y uno de los miembros principales aplica el parche, ambos obtienen crédito: usted como autor y el miembro principal como el autor del contrato.
La date del autor en una confirmación se conserva en rebase / cherry-pick, etc. Pero la date de confirmación se modifica.