Ya he visto los documentos relevantes de git-scm.com y gitref.org , pero parece que no puedo entender esto.
Digamos que quiero obtener todos los commits para el martes 12 de noviembre de 2013. Usando un repositorio existente como ejemplo, sé con certeza que tengo commits ese día, así como los commits el día anterior y el día posterior.
Con 2013-11-11
y2013-11-12
Todo lo siguiente me da compromisos para el 11 y 12 de noviembre:
git log --after="2013-11-11" --until="2013-11-12"
git log --since="2013-11-11" --until="2013-11-12"
git log --after="2013-11-11" --before="2013-11-12"
git log --since="2013-11-11" --before="2013-11-12"
Con 2013-11-12
solo
Todo lo siguiente no me da confirmaciones:
git log --since="2013-11-12" --until="2013-11-12"
git log --since="2013-11-12" --before="2013-11-12"
git log --after="2013-11-12" --until="2013-11-12"
git log --after="2013-11-12" --before="2013-11-12"
Con 2013-11-12
y2013-11-13
Como era de esperar (a partir de los resultados de 2013-11-11
y 2013-11-12
por encima), todos de la siguiente me dan los resultados de ambos días 12 y 13 de noviembre:
git log --since="2013-11-12" --before="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
git log --since="2013-11-12" --until="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
...y así sucesivamente y así sucesivamente. Siento que he probado todas las combinaciones posibles de since
, after
, before
, y until
aunque todavía no puede encontrar la respuesta, ni me entiendo si estas opciones están incluidas o excluidas, ya que parecen ser incluido si las dos fechas son diferentes, pero exclusivo si están en el mismo día. ¿Me perdí algo / qué estoy haciendo mal?
Respuestas:
Gracias John Bartholomew!
La respuesta es especificar el tiempo, por ej.
git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
fuente
git log --after="2013-11-12 00:00" --before="2013-11-13 00:00"
lo tanto, es mejor. Creogitk --since="2013-11-12 00:00" --until="2013-11-13 00:00" &
que también funcionaría si tienes instalado gitk.git log --after="2017-07-25" --before="2017-07-26"
da resultados válidos para míPor lo general, reviso mi registro de git y veo lo que estaba trabajando en un día específico y actualizo mi hoja de tiempo en función de eso, pero es una molestia escribir la fecha completa en formato ISO, así que lo hago así
y agrego
--author
para imprimir solo mis confirmacionesEsto imprime los compromisos que ocurrieron el pasado 9 de junio (así que para 2016 en este caso y no para 2015 o 2014, etc.).
Las
--since/--after
y los--until/--before
parámetros también pueden tomar cosas por el estilo3 days ago
,yesterday
etc.fuente
since
yuntil
no son correctos, no obtendrá ningún resultado seguro. Utilicegit log
primero, y tratar de recoger unasince
yuntil
valor en función de lo que se ve. No se requiere sucursal ni nada especial. No estoy seguro desde qué versión de Git está disponible esta característica. Asegúrese de tener también una versión reciente.git log --after="may 2" --before="may 3"
No hay nada malo con la respuesta aceptada (que voté), pero ... ¡estamos aquí por la ciencia!
La salida a continuación se puede ampliar / personalizar con
pretty=format:<string>
marcadores de posición :No es 100% inmune a errores, ya que un usuario podría haber ingresado la misma cadena. Pero aceptable dependiendo de qué marcadores de posición se usen. El fragmento anterior no fallaría, por ejemplo.
Uno puede que también acaba de analizar el conjunto
git log
deJSON
y consumir / manipular sus datos al contenido del corazón de uno. ¡Visite https://github.com/dreamyguy/gitlogg y nunca mire hacia atrás!Descargo de responsabilidad: ese es uno de mis proyectos.
fuente
Hice un alias git para ese propósito específico:
Uso:
fuente
git commitsAtDate yesterday
,2 days ago
, etc.Este script muestra el rango de fechas disponibles de confirmaciones para el repositorio actual, luego solicita la fecha desde la que desea ver las confirmaciones. Muestra un SHA corto y el SHA completo, el autor, la marca de tiempo de confirmación y los comentarios entre comillas simples.
El script sigue solicitando fechas hasta que presione Entrar o Control-D.
Usuarios de Mac: requiere fecha gnu.
Llamé el guión
commitsOnDates
, y aquí está en acción. La primera fecha que ingreso no tiene confirmaciones, por lo que la respuesta es solo una línea vacía:fuente