La key de list git se compromete entre la revisión A y B

Intento entender la relación entre dos commits de git que están bastante separados en el espacio-time de git. Ambos tocan la misma pieza de código, pero en algún punto de la línea de uno de ellos, el código se movió a un file diferente.

Lo que creo que quiero hacer es esto: ver un git log simplificado que muestra confirmaciones de 'key'. Inicialmente, esto sería la revisión A, la revisión B y su ancestro común. Pero, a medida que identifico otros compromisos relevantes, también me gustaría poder verlos, en algo así como el formatting de git log --graph .

Problemas hasta el momento:

  1. git log --all A...B comienza en B, muestra muchos commits, y no estoy seguro de cuál es el significado de la confirmación final que muestra. (No es un)
  2. No puedo resolver de ninguna manera para filtrar la gran cantidad de confirmaciones. --simplify-by-decoration ayuda en otros casos, pero no aquí (p. ej., no muestra los commits reales que especifiqué).

Lo siento si esto no está claro. No es fácil explicar el tipo de información que sería útil hasta que la veas.

EDITAR

Ok, intentaré y deletrearlo. Llamar al destino confirma a123 y b234, con c345 otra 'confirmación key' que he identificado, y d456 es el ancestro común:

 git log <something> a123 b234 c345 d456 | | | c345 <description, diff of key file> | | | b234 <...> | a123 

Parece que está buscando el pico ( git log -S"code to search" ) o la culpa ( git blame -C file ).

Ver también: http://jfire.io/blog/2012/03/07/code-archaeology-with-git/