2012-09-15 2 views
5

나는 git에 새로운데, 나는 방금 "rm *"명령으로 중요한 파일을 삭제했다는 어리석은 실수를 저질렀다. 그러나 "git add"를 사용하여 파일을 추가했지만 커밋은하지 않았습니다. 삭제는 아직 추가되지 않았습니다. 따라서 삭제 된 파일을 복구 할 수있는 방법이 있습니다.Git에서 추가되었지만 커밋되지 않은 삭제 된 파일을 복구 할 수 있습니까?

모든 제안이나 답변을 보내 주시면 감사하겠습니다. 감사.

답변

7

파일이 준비 영역 (인덱스)에 이미 있기 때문에, 단순히 인수없이 git commit를 사용하여 커밋. 이것은 작업 트리의 현재 상태에 관계없이 인덱스 내용을 커밋합니다. 또는 git checkout FILE1 FILE2... (다른 유지하려는 트리의 변경이없는 경우)

그런 다음 당신은 당신의 작업 트리에 손실 된 파일을 복원 할 git reset --hard를 사용할 수 있습니다.

+0

오, 심지어 포스터는 "삭제가 아직 추가되지 않습니다"라고 통지하지 않았다. –

+0

고마워요, 효과가있었습니다. – user1672893

4

git fsck --lost-found을 사용하면 더 이상 참조되지 않는 모든 개체를 찾을 수 있습니다. '얼룩'객체를보고 삭제 한 파일과 일치하는 객체가 있는지 확인할 수 있습니다. 다행히도 참조되지 않은 많은 객체가 주위에 놓여 있지 않기를 바랍니다. user4815162342는 지적


이 포스터는 실제로는 git checkout로 검색, 또는 단순히 사라지지 않는 확인하기 위해 지금 최선을 다하고 될 수 있다는 뜻, 삭제가 아직 추가되지 않은했다.

다른 사람이 git fsck --lost-found에 대한 정보를 원할 경우를 대비하여 답변을 남기 겠지만 user4815162342의 대답을 받아 들여야합니다.

+0

안녕하세요, 응답 해 주셔서 감사합니다. 내가 명령을 실행하고,이 같은 방울 매달려의 목록을보고, 그럼 어떻게 내가 다시 삭제 된 파일을받을 수 있나요? 매다는 방울 매달려 029530a4ebc7dec791a58cb022e18d0d87c8fe04 방울 0c08f1e149bfa9e84e9e30867c931423267b91c7 매달려 0c871fff49c4a05ff4a49b6a910f3bc4b688e338 이 – user1672893

+1

'자식으로 fsck가 잃어 버렸-found' 모든 매달려 객체를 기록 BLOB '.git/lost-found/commit /'또는'.git/lost-found/other /'폴더에 저장합니다. 'other' 폴더를 살펴보고 삭제 한 내용이 들어있는 파일을 찾으십시오. 이름은 SHA1 해시이지만 내용은 실제 파일이됩니다. –

+0

또한'를 통해 개별 개체를 인쇄 할 수 있습니다 자식 고양이 파일 -p SHA1' –

관련 문제