Sie können baumelnde Commits mit sehen git log -g
.
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
Sie können dies also tun, um eine bestimmte Zeichenfolge in einer baumelnden Festschreibungsnachricht zu finden:
git log -g --grep=search_for_this
Wenn Sie alternativ die Änderungen nach einer bestimmten Zeichenfolge durchsuchen möchten, können Sie auch die Suchoption für Spitzhacken "-S" verwenden:
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 fügt die Option -G hinzu , mit der Sie -G <regexp> übergeben können, um festzustellen, wann eine Zeile mit <regexp> verschoben wurde, was -S nicht kann. -S zeigt Ihnen nur an, wann sich die Gesamtzahl der Zeilen mit der Zeichenfolge geändert hat (dh Hinzufügen / Entfernen der Zeichenfolge).
Schließlich können Sie gitk verwenden, um die baumelnden Commits zu visualisieren mit:
gitk --all $(git log -g --pretty=format:%h)
Verwenden Sie dann die Suchfunktionen, um nach der falsch platzierten Datei zu suchen. All diese Arbeiten setzen voraus, dass das fehlende Commit nicht "abgelaufen" ist und Müll gesammelt wurde. Dies kann passieren, wenn es 30 Tage lang baumelt und Sie Reflogs ablaufen lassen oder einen Befehl ausführen, der sie abläuft.