Encuentra el primer hijo común de dos commits

: A T / \ i BC m : : e DE \ / | F V : 

git merge-base BE permite encontrar dónde se ha comprometido el ancestro común A de los dos. ¿Hay alguna manera de encontrar el compromiso F donde las dos twigs se fusionan de nuevo?

Oops. No lo leí con cuidado.

La única información en una confirmación es la identificación de su padre (o padres). No se puede get un hijo de una confirmación principal (esta es la parte dirigida del repository que es un DAG).

Al --ancestry-path esto más, parece que la --ancestry-path para git log puede hacer esto. Por ejemplo dado:

 * 85d26ab When compiling vim, also compile & install gvim * 3146e5d Merge remote-tracking branch 'origin/devel' into deve |\ | * 28d08e5 rebasing-merge: specify all commits explicitly * | 006d11d Help 'file' find its magic file |/ * e68531d (tag: Git-1.7.6-preview20110720) Update submodules 

podemos get todos los hijos de estos dos compromisos utilizando

 git log --oneline --ancestry-path B..E 

si luego revierte esto y elige el primero, eso es F.

 git rev-list --reverse --ancestry-path 28d08e5..006d11d | head -1 

en mi caso, que devuelve 3146e5d.

Adapte all.awk de esta respuesta para llevar también el número de línea para cada ref, luego, cuando se encuentre con ambos padres, observe los refs que tienen en común.