Relación entre las twigs n git

Si tengo n git branches, ¿cómo puedo mostrar fácilmente la relación entre estas twigs?

Básicamente, estoy interesado en ver un tree de un subset de todas las twigs en mi repository. Sin embargo, no estoy interesado en todos los compromisos intermedios.

Por ejemplo: mi repository se ve así:

o---o--o A / / o--o--o--o--o--o B \ \ \ \ o--o C \ \ \ \ o--o--o--o--o--o D 

Pero probablemente sea mucho más complicado. Ahora quiero ver la relación entre la twig A, C y D. Algo similar a:

  o A / o--o--o \ \ o---o C \ o--o D 

O una visión general equivalente. ¿Es esto posible y cómo? (Una herramienta gráfica estará bien).

Solución

Según la respuesta de Antoine Pelisses, la línea siguiente parece hacer (casi) exactamente lo que quiero:

 git log --graph --decorate --oneline --simplify-by-decoration ABC 

Actualizar

Mark Longair señala en su respuesta a continuación que gitk acepta los mismos parameters que git rev-list , por lo que es posible hacer:

 gitk --simplify-by-decoration ACD 

Puedes probar esto:

 git log --graph --all --decorate --simplify-by-decoration 

Solo mostrará las confirmaciones que son cabezas de ramificación o labeldas.

Yo usaría:

 gitk ACD 

… probablemente haya otras GUI de git que produzcan una representación más bonita del gráfico de confirmación, pero siempre he encontrado que gitk excelente para este propósito. Todas las twigs y tags están labeldas en la representación del estilo "London Underground":

Una captura de pantalla de gitk que muestra varias fusiones y sucursales http://mythic-beasts.com/~mark/gitk-screenshot.png


También puede usar la --simplify-by-decoration para gitk , ya que comprende todos los parameters que hace git rev-list , por ejemplo:

 gitk --simplify-by-decoration ACD 

Una captura de pantalla de gitk con la opción --simplificar por decoración