Heute habe ich festgestellt, dass in meinem Git-Repository Code fehlt. Ich kannte einige der fehlenden Texte und die Datei, in der sie sich befanden, also habe ich sie verwendet git log -S'missingtext' /path/to/file.
Das einzige, was zurückkam, war das Commit, in dem ich die Zeile mit dem fehlenden Text hinzufügte. Der Text war in HEAD nicht vorhanden, und das Commit, das ihn hinzugefügt hat, war in meinem Zweig vorhanden. Daher wusste ich, dass einer der Commits in der Geschichte meines Zweigs ihn entfernt haben muss, aber er wurde nicht angezeigt.
Nach einigen manuellen Suchen stellte sich heraus, dass die Zeile versehentlich entfernt wurde, während ein Konflikt für eine Zusammenführung gelöst wurde. Also frage ich mich:
- Ist dies der Grund, warum pickaxe das Commit, das die Zeile gelöscht hat, nicht finden konnte?
- Wie hätte ich herausfinden können, wo "fehlender Text" gelöscht wurde, ohne den Verlauf manuell zu durchsuchen?
Jeder Einblick in # 1 wäre großartig (ich nahm an, das git log -Swürde mir meine Antwort geben), aber meine eigentliche Frage ist # 2, da ich dies in Zukunft vermeiden möchte.
git log -pund/missingtextwährend inlessist ein schneller und schmutziger Weg, dies zu tun.