回答:
git show HEAD^:path/to/file
明示的なコミット識別子を使用したりHEAD~n、古いバージョンを表示したり、削除してから複数のコミットがあった場合に使用したりできます。
fatal: Invalid object name 'HEAD^'.(私が言及しなければならないのは、「初期コミット」しかないことです)
これがしばらく前に削除したファイルであり、リビジョンを探したくない場合は、使用できます(fooこの例では、ファイルに名前が付けられています。フルパスを使用できます)。
git show $(git rev-list --max-count=1 --all -- foo)^:foo
rev-listすべてのリビジョンの呼び出しルックスfooだけのリスト1。rev-listリストは新しい順にリストされているので、リストされているのは変更された最後のリビジョンでfoo、削除されたコミットになりますfoo。(これは、gitが削除されたファイルの変更を許可せず、削除されたままであることを前提としています。)存在しないため、そのままrev-list返されるリビジョンをそのまま使用することはできませんfoo。ファイルの最後のリビジョンを含む直前のファイル、つまり^in を要求する必要がありますgit show。
**/fooパスがわからない場合は記述できます(これはrev-listコマンドでは機能しますが、showコマンドでは機能しません。ただし、rev-listコマンドからのコミットを使用すると、パスを見つけることができます)。
正確なパスを思い出せない可能性があるため、代わりにgit logからsha1を取得して、単に発行することができます
git cat-file -p <sha1>
git whatchanged --no-abbrev、git(またはsvn)ログに類似した出力を提供することです。
path/to/fileは、プロジェクトの最上部(リポジトリーの最上位ディレクトリー)からの絶対パスであることに注意してください。