Git에서 삭제된 파일을 복원하는 방법
올바른 명령은 한 가지, 즉 삭제가 얼마나 진행되었는지에 따라 달라집니다. 파일을 제거한 커밋을 찾는 방법과 Git이 다시 가져올 수 없는 세 가지 경우는 다음과 같습니다.
작성자: Kodmora
GitTree 뒤에 있는 소프트웨어 하우스
- 실행 취소 및 복구
- 커밋 기록
이 페이지에서
아직 커밋하지 않은 삭제된 파일을 복원하려면 `git restore path/to/file`을(를) 실행하세요. 삭제가 이미 커밋에 있으면 git log --diff-filter=D -- path/to/file을 사용하여 해당 커밋을 찾은 다음 git restore --source=<commit>^ -- path/to/file을(를) 실행하세요. Git은 한번 저장한 모든 것을 다시 가져올 수 있으므로 커밋된 파일은 거의 항상 복구 가능합니다.
| 무슨 일이 일어났나요? | 명령 |
|---|---|
| 삭제되었으나 준비되지 않음 | git restore path/to/file |
| 삭제 및 준비됨 | git restore --staged --worktree path/to/file |
| 커밋에서 삭제됨 | git restore --source=<commit>^ -- path/to/file |
방금 삭제한 파일을 어떻게 복원하나요?
git status이 "커밋을 위해 준비되지 않은 변경 사항" 아래에 파일을 나열하는 경우 색인에서 다시 복사합니다.
git restore src/app.tsgit rm 후에 파일을 어떻게 복원합니까?
git rm는 파일을 삭제하고 삭제 단계를 진행하므로 '커밋할 변경 사항' 아래에 표시됩니다. HEAD에서 색인과 작업 폴더를 모두 복원합니다.
git restore --staged --worktree src/app.ts이전 커밋에서 삭제된 파일을 어떻게 복원하나요?
먼저 삭제한 커밋을 찾으세요. --diff-filter=D은 삭제만 표시합니다.
git log --oneline --diff-filter=D -- src/app.ts해당 커밋에는 더 이상 파일이 없지만 상위 커밋에는 파일이 있습니다. ^은 "다음의 상위"를 의미하므로 삭제 전 마지막 버전을 복원합니다.
git restore --source=4f2a9c1^ -- src/app.ts파일이 새로운 변경 사항으로 작업 폴더에 다시 나타납니다. 검토한 다음 다른 편집과 마찬가지로 스테이징하고 커밋합니다. 2.23 이전 Git에서는 git checkout 4f2a9c1^ -- src/app.ts가 동일한 작업을 수행하고 파일을 준비합니다.
전체 경로가 기억나지 않으면 어떻게 합니까?
모든 분기에서 파일 이름을 검색하세요. 따옴표를 유지하면 Git이 쉘이 아닌 패턴을 확장합니다.
git log --all --diff-filter=D --name-only --oneline -- "**/app.ts"Git이 가져올 수 없는 것은 무엇입니까?
- 스테이징되거나 커밋된 적이 없는 파일입니다. Git은 해당 파일을 저장하지 않았습니다. 편집자의 로컬 기록이나 시스템 백업을 확인하세요.
- `git clean`에 의해 파일이 제거되었습니다. 추적되지 않았으므로 Git은 사본을 보관하지 않습니다.
- 비단계 편집은 `git restore`으로 대체됩니다. 명령은 해당 편집을 덮어쓰므로 원할 때만 실행하십시오.
한 번 스테이징된 후 손실된 파일은 때때로 아무것도 가리키는 blob을 나열하는 git fsck --lost-found를 사용하여 찾을 수 있습니다. 재설정, 리베이스 또는 커밋 실행 취소에 대한 게시물에서는 손실된 커밋을 다루고, 파일 기록 및 blame에 대한 강의에서는 시간을 거슬러 파일을 추적하는 방법을 보여주며, 폐기 및 정리에 대한 가이드에서는 GitTree가 먼저 저장하는 항목을 설명합니다.
GitTree에서 파일을 다시 가져오는 방법
먼저 실행 취소를 누르세요.
GitTree이 파일을 삭제하거나 정리한 경우 툴바에서 실행 취소를 누르세요. 아무것도 제거하기 전에
refs/ogt/trash아래에 복구 스냅샷을 저장합니다.기록 검색
커밋 그래프 검색을 사용하여 파일을 수정한 커밋을 찾은 다음 해당 커밋을 열어 해당 버전을 읽습니다.
커밋이 손실된 경우 Lost & Found를 사용하세요.
더 이상 분기점이 없는 커밋을 찾으려면 도구 → 분실물을 선택하세요.

자주 묻는 질문
git 복원과 git checkout의 차이점은 무엇입니까?
파일 복원이라는 한 가지 작업을 수행하기 위해 git restore가 Git 2.23에 추가되었습니다. git checkout은 또한 분기를 전환하므로 오용되기 쉽습니다.
파일이 삭제된 시점을 어떻게 알 수 있나요?
git log --diff-filter=D -- path/to/file을(를) 실행하세요. 작성자 및 날짜와 함께 해당 커밋을 제거한 커밋이 나열됩니다.
git Restore에서 pathspec이 일치하지 않는다고 말하는 이유는 무엇입니까?
Git은 선택한 소스의 해당 경로를 모릅니다. 파일이 커밋에서 삭제된 경우 --source=<commit>^을(를) 사용하여 해당 커밋의 상위 항목에서 파일을 복원하세요.
삭제된 폴더를 복원할 수 있나요?
예. 파일 대신 폴더 경로를 전달하세요(예: git restore --source=<commit>^ -- src/utils).
복원된 파일은 자동으로 커밋되나요?
아니요. 작업 폴더에 변경 사항이 표시됩니다. 준비가 되면 준비하고 커밋하세요.
출처
다른 제품에 대한 주장은 2026년 11월 7일의 공식 페이지에서 확인되었습니다. 가격과 기능은 변경됩니다. 공급업체 페이지가 진실의 원천입니다.