Pregunta Obtén todas las confirmaciones de git desde la última etiqueta


Cuando voy a etiquetar un commit *, necesito saber qué cambió desde el último commit etiquetado. P.ej:

a87a6sdf87a6d4 Some new feature
a87a6sdf87a6d3 Some bug fix
a87a6sdf87a6d2 Some comments added
a87a6sdf87a6d1 Some merge <- v1.4.0

En este ejemplo, me gustaría saber acerca de las 3 confirmaciones más recientes, o poder imprimir un registro como el anterior, que muestre que ambos confirman sus etiquetas, si las hay. Y cuando vea que se ha agregado una característica nueva, la etiquetaría v1.5.0.

Como tratas con esto? ¿Es así como se supone que debo usar las etiquetas? ¿Qué debería escribir en el mensaje de etiqueta? Siempre lo dejo en blanco: git tag -a v1.2.3 -m ''


75
2017-08-22 23:53


origen


Respuestas:


git log <yourlasttag>..HEAD ?

Si los quieres como en tu ejemplo, en la línea con el mensaje de confirmación + mensaje, entonces

git log <yourlasttag>..HEAD --oneline

y en caso de que no conozca su última etiqueta o desee que sea dinámica, en Windows podría hacerlo

for /f "delims=" %a in ('git describe --tags --abbrev^=0') do @set latesttag=%a
git log %latesttag%..HEAD --oneline

y en linux

git log `git describe --tags --abbrev=0`..HEAD --oneline

Además, si tiene un caso en el que conoce una etiqueta en el historial y desea imprimir todo desde esa etiqueta hasta la situación actual, es posible que desee agregar también --decorate por lo que imprimiría cualquier etiqueta en el medio.


146
2017-08-22 23:59



Si su confirmación actual también es una etiqueta y desea obtener dinámicamente los cambios desde la etiqueta anterior, sin conocer la última etiqueta ni el nombre de etiqueta anterior, puede hacer:

git log --oneline $(git describe --tags --abbrev=0 @^)..@

Tenga en cuenta que @ es la abreviatura de HEAD.


22
2017-07-30 09:17