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^..c
hacer eso?
181
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í .
git show --name-only <sha1>
¡ hazlo !git show -s <commit>
.-1
hacer? ¿Dónde está documentado?git help log
en 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.git log -p c -1
hace exactamente esofuente
-n 1
o--max-number=1
y se documenta aquí .Puede usar para filtrar los cambios por descripción de commit:
donde
git log --grep='part_of_description'
seleccione los commits que contienen 'part_of_description' y-p
muestre el conjunto de cambios de cada commitfuente