개발관련/Git

Git 저장소에서 삭제 된 파일을 찾고 복원하는 방법

Rateye 2021. 12. 14. 14:12
728x90
반응형
질문 : Git 저장소에서 삭제 된 파일을 찾고 복원하는 방법

내가 Git 저장소에 있다고 가정하십시오. 파일을 삭제하고 변경 사항을 커밋합니다. 나는 계속 일하고 더 많은 커밋을 만듭니다. 그런 다음 해당 파일을 복원해야합니다.

git checkout HEAD^ foo.bar 사용하여 파일을 체크 아웃 할 수 있다는 것을 알고 있지만 해당 파일이 언제 삭제되었는지는 잘 모릅니다.

수동으로 로그를 찾아보고 주어진 SHA에 대한 전체 프로젝트를 체크 아웃 한 다음 해당 파일을 원래 프로젝트 체크 아웃에 수동으로 복사 할 필요가 없기를 바랍니다.

답변

주어진 경로에 영향을 준 마지막 커밋을 찾습니다. 파일이 HEAD 커밋에 없기 때문에이 커밋은 삭제해야합니다.

git rev-list -n 1 HEAD -- <file_path>

^ ) 기호를 사용하여 이전 커밋에서 버전을 확인합니다.

git checkout <deleting_commit>^ -- <file_path>

또는 한 명령에서 $file 이 문제의 파일 인 경우.

git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"

zsh를 사용하고 EXTENDED_GLOB 옵션을 활성화 한 경우 캐럿 기호가 작동하지 않습니다. 대신 ~1 사용할 수 있습니다.

git checkout $(git rev-list -n 1 HEAD -- "$file")~1 -- "$file"
출처 : https://stackoverflow.com/questions/953481/how-to-find-and-restore-a-deleted-file-in-a-git-repository
728x90
반응형