git log de una sola revisión

181

Tengo un compromiso c. Quiero obtener el conjunto de cambios de esa metainformación exacta de commit c + y ninguna otra. ¿Hay una manera más simple que git log -p c^..chacer eso?

zedoo
fuente

Respuestas:

269

Puedes usar show:

git show commit_id
Michał Trybus
fuente
60

La respuesta de Michal Trybus es la mejor para la simplicidad. Pero si no desea la diferencia en su salida, siempre puede hacer algo como:

git log -1 -U c

Eso le dará el registro de confirmación, y luego tendrá control total sobre todas las opciones de registro de git para sus propósitos de automatización. En tu caso, dijiste que querías el conjunto de cambios. La forma más legible para lograrlo sería:

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

O, si está utilizando una versión de git mayor que 1.8.X, sería:

git log --name-status --diff-filter="ACDMRT" -1 -U c

Esto le dará resultados similares a:

commit {c}
Author: zedoo <[email protected]>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

Por supuesto, puede filtrar los eventos que considere adecuados y formatear la devolución como lo desee a través de los comandos tradicionales de git-log que están bien documentados aquí .

SuperFamousGuy
fuente
14
Si no quieres el diff, git show --name-only <sha1>¡ hazlo !
dbn
16
Si simplemente no quieres el diff, úsalo git show -s <commit>.
moeffju
3
¿Qué -1hacer? ¿Dónde está documentado?
alex
1
@alex Vea el resultado git help logen la sección "Limitación de compromiso". O visite git-scm.com/book/en/v2/… -<number> limita el número de confirmaciones a la salida.
LarsH
14

git log -p c -1 hace exactamente eso

Robert Munteanu
fuente
44
¿Qué hace -1? ¿Dónde está documentado?
alex
44
@alex: El "-1" limita el número de entradas mostradas al número dado, es una abreviatura de -n 1o --max-number=1y se documenta aquí .
derpasaurus
0

Puede usar para filtrar los cambios por descripción de commit:

git log --grep='part_of_description' -p

donde git log --grep='part_of_description'seleccione los commits que contienen 'part_of_description' y -pmuestre el conjunto de cambios de cada commit

natigon
fuente