답변:
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만 나열 하나. rev-list역 시간순으로 나열 되므로 변경된 마지막 개정 foo이 삭제 된 커밋이됩니다 foo. (이것은 git이 삭제 된 파일을 변경하는 것을 허용하지 않고 삭제 된 상태로 남아 있다는 가정을 기반으로합니다 .) 더 이상 존재하지 않기 때문에 그대로rev-list 반환 하는 개정판을 사용할 수 없습니다 . 당신은 파일의 마지막 수정, 따라서이 들어 그냥 전에 하나 물어 봐야 의를 .foo^git show
**/foo경로를 모르는 경우 쓸 수 있습니다 (이것은 rev-list 명령에서는 작동하지만 show 명령에서는 작동하지 않습니다. 그러나 rev-list 명령에서 커밋하면 경로를 찾을 수 있습니다).
정확한 경로를 기억하지 못할 수도 있으므로 대신 git log에서 sha1을 가져올 수 있습니다.
git cat-file -p <sha1>
git whatchanged --no-abbrevgit (또는 svn) 로그와 유사한 출력을 제공하는 것입니다.
path/to/file프로젝트의 상단 (저장소의 상단 디렉토리)에서 전체 경로입니다.