Puedes ver confirmaciones colgantes con git log -g
.
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
Entonces, puede hacer esto para encontrar una cadena particular en un mensaje de confirmación que cuelga:
git log -g --grep=search_for_this
Alternativamente, si desea buscar los cambios para una cadena en particular, puede usar la opción de búsqueda de pico, "-S":
git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)
Git 1.7.4 agregará la opción -G , permitiéndole pasar -G <regexp> para encontrar cuándo se movió una línea que contiene <regexp>, lo que -S no puede hacer. -S solo le indicará cuándo cambió el número total de líneas que contienen la cadena (es decir, agregar / quitar la cadena).
Finalmente, puede usar gitk para visualizar las confirmaciones colgantes con:
gitk --all $(git log -g --pretty=format:%h)
Y luego use sus funciones de búsqueda para buscar el archivo fuera de lugar. Todo este trabajo suponiendo que el commit faltante no ha "caducado" y se ha recolectado basura, lo que puede suceder si está colgando durante 30 días y expira los registros o ejecuta un comando que caduca.