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
반응형
'개발관련 > Git' 카테고리의 다른 글
Xcode 프로젝트에 대한 Git ignore 파일 (0) | 2021.12.15 |
---|---|
커밋 푸시를 위해 GitHub 자격 증명을 캐시하는 방법 (0) | 2021.12.15 |
현재 변경 사항으로 Git 분기 만들기 (0) | 2021.12.14 |
git 히스토리에서 큰 커밋을 찾고 식별하는 방법 (0) | 2021.12.14 |
GitHub에서 분기 된 저장소를 업데이트하거나 동기화 하는 방법 (0) | 2021.12.13 |