Mein Repository wurde wie folgt geändert:
- ... einige nicht verwandte Commits ...
- Festschreiben einer neuen Datei
foomit 100 Inhaltszeilen - ... intervenierende Commits, von denen einige berühren
foo... - Fügen Sie den Inhalt von
foooben in eine vorhandene Dateibarundgit rm fooin 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, fookann git log 1234abcd -- fooich das Protokoll sehen und denke, dass mein Weg zu foonicht das Problem ist. Beachten Sie auch, dass git merge-base HEAD 1234abcdAusgaben 1234abcd[...], so dass ich denke, dass beweisen sollte, dass das Commit von erreichbar ist HEAD. Beachten Sie, dass sich fooin 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 -- foobei mir nicht und wie kann ich es beheben? Vielen Dank!
--followbeim Lesen habe historyich gesehen, dass ich seitdem woanders cd'ed hatte, als ich es versuchte, was den Pfad ungültig machte. git log --follow -- foohat funktioniert, als ich es vom richtigen Ausgangspunkt aus versucht habe. Ich denke , Git betrachtet rollt fooin barder 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 -- fooodergit log --follow -M -- foo? (um die Umbenennungserkennung zu erzwingen)