Puoi vedere commettere penzoloni 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.
Quindi potresti farlo per trovare una stringa particolare in un messaggio di commit che è penzolante:
git log -g --grep=search_for_this
In alternativa, se si desidera cercare le modifiche per una stringa particolare, è possibile utilizzare l'opzione di ricerca del piccone, "-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 aggiungerà l'opzione -G , permettendoti di passare -G <regexp> per trovare quando una linea contenente <regexp> è stata spostata, cosa che -S non può fare. -S ti dirà solo quando il numero totale di righe contenenti la stringa è cambiato (cioè aggiungendo / rimuovendo la stringa).
Infine, puoi usare gitk per visualizzare le commit penzolanti con:
gitk --all $(git log -g --pretty=format:%h)
E poi usa le sue funzionalità di ricerca per cercare il file fuori posto. Tutto questo lavoro presupponendo che il commit mancante non sia "scaduto" ed è stato raccolto in modo inutile, cosa che può accadere se pende per 30 giorni e si scadono i reflog o si esegue un comando che li fa scadere.