Buscar combinación de fusión para la twig de versión

Con el siguiente historial de git:

f---g---h--- feature / \ c---e---i---j---k---l--- release / \ -a--b---d---m---n---o---p---q---[hundnetworkings of commits]--- master 

Tengo el SHA de commit g . Ni la característica, ni la versión están disponibles por más time y necesito encontrar la confirmación q , IE donde la twig de publicación se fusionó en maestra. Con las respuestas en una pregunta diferente ( Buscar fusión, que incluye una confirmación específica ), solo puedo encontrar la confirmación k, donde la twig de function se fusionó en la twig de publicación. ¿Cómo hago esto?

Si la característica o las twigs de publicación tienen nombres únicos, usted debería poder encontrar q en el master buscando sus commits de fusión para ese nombre único (por ejemplo, usando gitk --merges y luego ingresando un término en el campo Find ) porque Git registra por defecto los nombres de las twigs fusionadas en los posts de confirmación de fusión.

De lo contrario, podría search la primera combinación de fusión en el master que se haya fusionado con un script similar a este:

 g=ad198bc for i in $(git log --merges --reverse --format=%H); do revlist=$(git rev-list -1 $g --not $i) if [ $? -eq 0 ]; then if [ "$revlist" = "" ]; then echo "Merge commit $i has $g merged." exit fi fi done 

Suponiendo que eres el historial de Git se ve exactamente como lo has descrito:

  f---g---h--- feature / \ c---e---i---j---k---l--- release / \ -a--b---d---m---n---o---p---q---[hundnetworkings of commits]--- master 

Entonces, una manera en que puede encontrar q es simplemente examinando su git log . Utilizar

 git log --oneline --graph 

luego, en la salida de less paginador (supongo que estás usando less como paginador), presiona / y luego escribe sha para g , lo que provocará que less busques la salida de git log para ese sha. Luego simplemente desplácese un poco hacia arriba en la salida hasta que encuentre q .

Sugeriría esto:

 git log --merges --ancestry-path g..q 

--merges loggings solo fusiona commits, y --ancestry-path limita los commits solo a aquellos en la ruta entre g y q. En este caso, debería mostrar tanto k como q.