Mein Repository wurde wie folgt geändert:
- ... einige nicht verwandte Commits ...
- Festschreiben einer neuen Datei
foo
mit 100 Inhaltszeilen - ... intervenierende Commits, von denen einige berühren
foo
... - Fügen Sie den Inhalt von
foo
oben in eine vorhandene Dateibar
undgit rm foo
in das gleiche Commit ein - ... mehr unabhängige Verpflichtungen ...
Jetzt möchte ich das Protokoll der gelöschten Datei sehen foo
. Alles, was ich gelesen habe, einschließlich SO, sagt, dass ich dazu in der Lage sein sollte git log -- foo
, aber dieser Befehl erzeugt keine Ausgabe.
Wenn ich das Commit finde, das das Löschen umfasst, foo
kann git log 1234abcd -- foo
ich das Protokoll sehen und denke, dass mein Weg zu foo
nicht das Problem ist. Beachten Sie auch, dass git merge-base HEAD 1234abcd
Ausgaben 1234abcd[...]
, so dass ich denke, dass beweisen sollte, dass das Commit von erreichbar ist HEAD
. Beachten Sie, dass sich foo
in meinem Arbeitsbaum keine Datei befindet (offensichtlich, da sie gelöscht wurde). Verwenden von Git 1.7.1.1 unter OS X.
Warum funktioniert das git log -- foo
bei mir nicht und wie kann ich es beheben? Vielen Dank!
--follow
beim Lesen habe history
ich gesehen, dass ich seitdem woanders cd'ed hatte, als ich es versuchte, was den Pfad ungültig machte. git log --follow -- foo
hat funktioniert, als ich es vom richtigen Ausgangspunkt aus versucht habe. Ich denke , Git betrachtet rollt foo
in bar
der Umbenennungs als eine Art? Auf jeden Fall danke! Ich werde dies gerne gutschreiben, wenn Sie es als Antwort erneut veröffentlichen.
--
Fragentitel geändert wird —
...
git log --follow -- foo
odergit log --follow -M -- foo
? (um die Umbenennungserkennung zu erzwingen)