Git: ¿Determinar todos los compromisos realizados en una sucursal fusionada?

Así que aquí está nuestra situación actual. Tenemos una twig 'dev' (que tiene cambios que no entrarán en 'master' / producción) y una twig 'X' en la que un par de desarrolladores han estado trabajando.

A lo largo del lap de dev en la twig de características 'X', hubo commits normales pero luego 'dev' se fusionó varias veces (incluyendo todas las otras confirmaciones de la sucursal a 'dev') para que pueda desplegarse en nuestra instancia de QA para probar .

Además de verificar los posts de confirmación para los desarrolladores que se han molestado en indicar el número de ticket en el que están trabajando, ¿hay alguna forma de determinar qué confirmaciones se realizaron directamente a la twig de característica 'X' en lugar de las confirmaciones que se produjeron con las fusiones?

Sí hay. git log origin/X ^origin/dev Esto le dará un log de origin/X con todas las confirmaciones de origin/dev eliminadas. Es posible que desee también excluir confirmaciones antes de X bifurcación de master también …

Y si quiere ir aún más lejos, puede intentar agregar --first-parent (otros dicen que esto puede funcionar o no según otros usuarios siguiendo las mismas reglas de parentesco) y --no-merges que se ocultan merge commits que puede o no querer.

Otro consejo útil es utilizar shortlog lugar de log que le dará más de un resumen abbreivated que puede ser útil para notas de la versión, o la comunicación de lo que está en una twig.

Use el git log con la opción:

–primer padre

Siga solo la primera confirmación de los padres al ver una combinación de fusión. Esta opción puede proporcionar una mejor visión general al ver la evolución de una twig temática en particular, ya que las fusiones en una twig temática tienden a ajustarse solo a actualizaciones ascendentes de vez en cuando, y esta opción le permite ignorar las confirmaciones individuales introducidas en su historia por tal fusión.