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?

Respuestas:



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 <zedoo@stackoverflow.com>
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í .


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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.