2011-10-28 6 views

Respuesta

35

Creo que no hay forma de obtener un diff solo para saber las fechas.

A partir de hoy se puede hacer lo siguiente:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H" 

Y luego git diff entre el primer y el último revisiones. Si la lista de revisión es demasiado larga, use la información anterior git log ... con | head -1 y | tail -1 para obtener la primera y la última revisión.

Tenga en cuenta que el registro de git anterior devolverá las revisiones exactamente entre las fechas dadas, es decir, revisiones de 5 oct 6 oct ..., OCT 10.

+0

Usted puede hacer _sort_ de ella directamente con diff, pero no tan fiable, utilizando el '@ {fecha}' notación, por ejemplo, 'git diff @ {} @ {fecha1 la fecha 2}'. El problema es que el constructo '@ {date}' no mira el historial de confirmaciones para traducir la fecha a un commit-id, sino que usa el _revlog_. El resultado es que si tira _realmente_ con frecuencia, su revlog tendrá información lo suficientemente detallada como para que lo anterior haga lo que quiera, pero si _no_, los resultados serán inexactos ... – snogglethorpe

+0

Tuve que agregar un signo igual para que funcione: '' 'git log --since =" FEB 1 2014 "--until =" FEB 30 2014 "' ' – bonyiii

4

Esto es posible, y con el usuario/confirmador criterios:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary" 

Esto coincidirá con nada

  • entre los
  • fecha
  • por autores que coinciden con los nombres JohnoMary
  • donde el mensaje de compromiso incluye (p. Ej. un número de ticket de Jira en forma de) MBT o MBF más un código numérico que puede incluir un carácter -.
+0

Esto muestra el registro, pero no un diff. – pingu

0
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch 
Cuestiones relacionadas