¿Cómo puede desaparecer este compromiso de la historia de Git?

No puedo entender por qué un compromiso en particular parece haberse desvanecido de mi historial de git, aunque puedo verlo desde un commit anterior en mi sucursal.

Puede ver que el master contiene la label v2.1.1.332 :

 $ git branch --contains v2.1.1.332 * master 

Aquí está el logging de commit para lib/facebook-ios-sdk del master :

 $ git log --format=%h master -- lib/facebook-ios-sdk 4b23dc7 3cc007d b14fbda 3e5c85d ab962d1 d3da048 d765573 

Tenga en count que lib/facebook-ios-sdk es un submodule de git, no una ruta regular en mi git repo.

Y v2.1.1.332 logging para la misma ruta de v2.1.1.332 :

 $ git log --format=%h v2.1.1.332 -- lib/facebook-ios-sdk e5ed45f 4b23dc7 3cc007d b14fbda 3e5c85d ab962d1 d3da048 d765573 

Observe la confirmación e5ed45f ; ¡está aparentemente presente en v2.1.1.332 pero no en el master ! ¿Cómo es esto posible?

Aún más interesante, git-branch indica que el master contiene e5ed45f :

 $ git branch --contains e5ed45f * master 

Además, cuando ejecuto git log master , obtengo e5ed45f en la list. Es solo que no veo esto confirmado cuando especifico la ruta con el git log .

¿Por qué estoy preguntando todo esto? Si bien esto en sí mismo es un estado de cosas curioso, notamos que el submodule lib/facebook-ios-sdk había configurado erróneamente en una confirmación previa (la del tree de 4b23dc7 ). Comenzamos a search el compromiso incorrecto usando git log master -- lib/facebook-ios-sdk y fue entonces cuando nos encontramos con esto. En este momento no tenemos idea de cómo se modificó la confirmación de este submodule a un valor anterior.

EDIT wasHamster en #git me apuntó a git log --full-history . Al usar esta opción, se muestra la confirmación faltante:

 $ git log --format=%h --full-history master -- lib/facebook-ios-sdk e5ed45f 4b23dc7 3cc007d b14fbda 3e5c85d ab962d1 aa43dc3 d3da048 d765573 

Sin embargo, todavía no explica por qué la confirmación errónea está desprotegida para el submodule:

 $ git show --format=%b e5ed45f -- lib/facebook-ios-sdk diff --git a/lib/facebook-ios-sdk b/lib/facebook-ios-sdk index cb42580..de7509b 160000 --- a/lib/facebook-ios-sdk +++ b/lib/facebook-ios-sdk @@ -1 +1 @@ -Subproject commit cb425807b1f25f916e48b35e06197bccc8b881be +Subproject commit de7509b8bff6df7163738a979567a72fd4a13ff8 # This command was run on master $ git submodule lib/facebook-ios-sdk cb425807b1f25f916e48b35e06197bccc8b881be lib/facebook-ios-sdk (v1.1-20-gcb42580)