내 git 저장소가 어떻게 든 불안정 해졌습니다. 오늘 아침에 msysgit을로드했고 현재 디렉토리 뒤에 브랜치 이름이 표시되는 대신 "((ref : re ...))"라고 표시되고 'git status'는 모든 것을 a 새 파일, 'git log'및 'git reflog'는 "치명적 : 잘못된 기본 개정판 'HEAD'"등을 알려줍니다.
'git reflog --all'또는 'gitk --all'을 수행하면 저장소의 나머지 부분이 손상되지 않은 것으로 표시되지만 작업중인 브랜치가 사라진 것처럼 보이므로 HEAD가 존재하지 않는 것 같습니다. 무엇이든 가리 킵니다.
나는 git이 모든 종류의 정보를 보유하고 있다는 것을 알고 있으며, 내 커밋이 어떻게 든 고아가되었다고 가정하고 있습니다. 그러면 커밋을 표시하여 HEAD를 재설정 할 수있는 명령이 있습니까?
편집 : 오, 이런. 나는 'git fsck'를 발견했고 'git fsck --full'은 "치명적 : 개체 03ca4 ...가 손상되었습니다"라고보고합니다. 악마는 그것에 대해 무엇을 할 수 있습니까?
편집 : 오, 오 이런. 다른 브랜치를 체크 아웃 한 다음 'git checkout -b lostbranchname'을 사용하여 동일한 이름으로 원래 브랜치를 다시 만들려고했는데 git은 "오류 : 참조 참조를 해결할 수 없습니다. refs / heads / lostbranchname : 오류 없음, 치명적 : 실패했습니다. 업데이트를 위해 참조 잠금 : 오류 없음 ". '오류 없음'은 특히 심한 오류 여야합니다. 그래서 그것은 여전히 매달려 있지만 사용할 수없고 죽일 수도없는 것처럼 보입니다.
편집 : 슈퍼 듀퍼 오 이런. 여기에 제안 된대로 여러 가지를 풀고 재 포장하고 교체 했습니다. 하드 디스크 오류로 손상된 Git 개체를 복구하는 방법? , 그러나 이제 'git status'와 같은 무해한 것으로 인해 다른 해시가 손상된 것으로보고되었습니다. 나는 모든 것이 물에 빠져 있다고 생각합니다. 힘내는 사랑스럽고 모든 것이지만 이런 종류의 일을 다룰 필요는 없습니다.
git checkout -b lostbranchname-브랜치의 내용이 아닌 브랜치의 이름에만 관심이 있다면 수동으로 삭제 (또는 이름 변경) 할 수 있습니다.git/refs/heads/lostbranchname.