"fecha" es un concepto un tanto vago en git. Una confirmación tendrá una fecha de autor que puede ser un poco en el pasado antes de que alguien realmente extraiga / confirme la confirmación en su repositorio, también la confirmación puede volver a basarse y actualizarse para estar encima de una confirmación aparentemente más nueva.
Una confirmación también tiene una fecha de confirmación que se actualiza si una confirmación se vuelve a basar o se modifica de alguna manera. Es más probable que estas confirmaciones estén en algún tipo de orden cronológico, pero aún estás a merced de que el autor de la confirmación tenga la hora correcta configurada en su computadora y, aun así, una confirmación no modificada puede ubicarse en una rama de características en un repositorio remoto indefinidamente antes fusionándose en la rama maestra de un repositorio central.
Lo que probablemente sea más útil para sus propósitos es la fecha de re-registro en el repositorio particular en cuestión. Si tiene habilitados los reflogs por rama (consulte git config core.logAllRefUpdates
), puede usar la ref@{date}
sintaxis para referirse a dónde estaba una rama en un momento determinado.
P.ej
git log -p master@{2009-07-01}..master@{now}
También puede usar descripciones 'difusas' como:
git log -p "master@{1 month ago}..master@{yesterday}"
Estos comandos mostrarán todas las confirmaciones que han "aparecido" en la rama dada del repositorio, independientemente de la "antigüedad" que tengan según su autor y las fechas de confirmación.
Tenga en cuenta que el reflog por rama es específico de un repositorio, por lo que si está ejecutando el comando de registro en un clon y no extrae durante (digamos) un mes, extraiga todos los cambios del último mes a la vez, luego, todos los cambios del último mes aparecerán en un @{1 hour ago}..@{now}
rango. Si puede ejecutar el comando de registro en el repositorio 'central' al que la gente empuja, entonces puede hacer lo que quiera.