2014-10-25 7 views
2

프로젝트 작업 중이고 하드웨어 오류가 발생했습니다. 나는이 일이 있기 전에 밀지 못했던 약 30 개의 커밋을 가지고있다. 나는 충돌에서 회복했고 나의 repo를 점검했다. 이제 git status에서이 오류 메시지가 표시됩니다.git을 사용한 데이터 손상

error: object file .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3 is empty 
error: unable to find a8f43fd5a872feda2a771e6a1ced1518f455d9f3 
error: object file .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3 is empty 
fatal: loose object a8f43fd5a872feda2a771e6a1ced1518f455d9f3 (stored in .git/objects/a8/f43fd5a872feda2a771e6a1ced1518f455d9f3) is corrupt 

어떻게이 빈 개체를 제거하고 머리글에서 오류 메시지를받을 수 있습니까?

내가 수동으로 잘못된 개체를 제거했지만,이 오류를 가지고 :
fatal: could not parse HEAD 

사전에 감사합니다.

+1

[이 질문에] (http://stackoverflow.com/questions/4254389/git-corrupt-loose-object) 및 [이 질문] (http://stackoverflow.com/questions/11597003/how-to- remove-fatal-loose-object)가 도움이 될 것입니다. – Makoto

+1

[하드 디스크 오류로 손상된 Git 개체를 복구하는 방법?] (http://stackoverflow.com/questions/801577/how-to-recover-git-objects-damaged-by-hard-disk-failure) –

+0

조금 더 간단한 문제. 방금 아래 단계를 수행했습니다. 고려해 주셔서 감사합니다. – user3386050

답변

1

감사합니다. 나는 당신의 의견을 투표했습니다. 나는 내 자신의 빠르고 더러운 해결책을 생각해 냈습니다.

  1. 나는 ~/my_project/.git /에 갔다 로그/심판/헤드 /라는 이름의 파일 열 숭고한 텍스트 편집기를 사용하여 디렉토리에서 : 마스터 (이 파일이 커밋의 역사를 포함)

  2. 나는 코드의 마지막 줄을 갔다. 그것은 NULL, NULL, NuLL을 반복하여 반복해서 포함했습니다. 파일을 삭제하고 파일을 저장했습니다.

  3. 커밋의 마지막 라인에는 각 문자열에 40 개의 문자가있는 커밋 문자열 2 개가 표시됩니다. 두 번째 문자열을 복사했습니다.

  4. 다음으로이 디렉토리로갔습니다. ~/my_project/.git/심판/헤드 디렉토리에서 라는 이름의 파일 열 숭고한 텍스트 편집기를 사용 : 마스터 를

  5. 내가 내가 이전에 복사 한 문자열을 커밋 붙여 넣기 (이 파일은 마지막으로 당신의 역사에 커밋 포함) 파일을 저장했습니다.

  6. 나는 git 상태를 실행했고, 내 지점이 origin/master보다 29 커밋보다 앞서 있다고 명시했다.

  7. 커밋을 푸시했습니다.

  8. 또 다른 git 커밋을하고, 그 커밋 된 커밋에 있어야했던 변경 사항을 커밋했습니다.

  9. 이제 내가 중단 한 부분으로 돌아 왔습니다.

이 정보가 도움이되기를 바랍니다.