programing

Git 사용 시 "Error: bad index – Fatal: index file corrupt" 해결 방법

mailnote 2023. 5. 31. 18:22
반응형

Git 사용 시 "Error: bad index – Fatal: index file corrupt" 해결 방법

나 뒤에git init몇 개의 파일을 추가하고 커밋하고, 몇 가지 변경하고, 추가하고 커밋했습니다.Git 데몬(WinXP의 Cygwin에서 실행)을 설정하고 저장소를 한 번 복제합니다.이제 복제된 저장소에서 다음 오류가 발생합니다.

$ git status
error: bad index file sha1 signature
fatal: index file corrupt

저장소의 새 복사본을 얻는 것 외에 이 문제를 해결할 수 있는 방법이 있습니까?

인덱스가 커밋 준비 영역으로 문제가 있는 경우(예:.git/index 백업 ) 커밋에서 할 수 .에서 인덱스를 제거한 다음(원하는 경우 백업 복사본 만들기) 마지막 커밋에서 인덱스를 버전으로 복원할 수 있습니다.

OSX/리눅스/Windows(Gitbash 포함)의 경우:

rm -f .git/index
git reset

윈도우즈의 경우(기트배시가 아닌 CMD 사용):

del .git\index
git reset

(계속)reset는 위의명다같습다니과음은과 .git reset --mixed HEAD)

또는 하위 레벨 배관을 사용할 수 있습니다. git read-treegit reset.


파일에 대한 인덱스에 문제가 있는 경우 다음을 사용하여 복구할 수 있습니다.git index-pack.

실수로 프로젝트 루트에 sed가 있는 .git/index 파일이 손상되었을 수 있습니다(아마도 리팩터링?).

sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr "$SEARCHPATERN" "$PROJECTROOT")

나중에 이러한 문제를 방지하려면 grep/sed로 이진 파일을 무시하십시오.

sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr --binary-files=without-match "$SEARCHPATERN" "$PROJECTROOT")

저는 그 문제를 가지고 있었고, 저는 이것을 해결하려고 노력했습니다.

rm -f .git/index
git reset

하지만 그것은 효과가 없었습니다.해결책?어떤 이유로 하위 디렉터리에 다른 .git 폴더가 있었습니다.나는 그 .git 폴더들을 삭제합니다 (주체가 아닙니다).git reset다시 한 번. 일단 삭제되면 모든 것이 다시 작동합니다.

나쁜 복제품처럼 들리네요.다음을 시도하여 더 많은 정보를 얻을 수 있습니다.

git fsck --full

위의 해결책들이 저에게 계속된 문제를 남겼기 때문에, 저는 이 둔탁한 해결책을 사용했습니다.

  1. 레포의 새 복사본을 다른 곳에 복제
  2. 신규 .git 디렉토리를 커밋할 변경 사항이 포함된 (파손된) repo에 복사합니다.

속임수를 썼죠.그나저나, 나는.sed@hobs가 추측한 것처럼 프로젝트 루트에서.내 교훈을 배웠습니다.

이것은 저에게 효과가 있었습니다.애초에 오류가 나기 시작한 이유가 궁금하긴 하지만요.어제 로그아웃했을 때는 괜찮았어요.오늘 아침에 로그인하세요, 그렇지 않았습니다.

rm .git/index

git reset

Git 하위 모듈 사용자에 대한 참고 사항 - 여기에 있는 솔루션은 현재 상태로는 작동하지 않습니다.

예를 들어 다음과 같은 상위 리포지토리가 있다고 가정합니다.dev들어 은 " " ", " " 입니다.api.

만약 당신이 안에api다음 질문에 언급된 오류가 표시됩니다.

error: bad index file sha1 signature fatal: index file corrupt

index파일이 파일 내부에 없을 것입니다..git폴더를 누릅니다.사실, 그..git폴더가 될 수도 없습니다. 이 리포지토리에 대한 실제 .git 데이터의 위치가 포함된 텍스트 문서가 될 것입니다.다음과 같은 것일 수 있습니다.

~/dev/api $ cat .git gitdir: ../.git/modules/api

그래서 대신에rm -f .git/index이 작업을 수행해야 합니다.

rm -f ../.git/modules/api/index git reset

아니면, 더 일반적으로,

rm -f ../.git/modules/INSERT_YOUR_REPO_NAME_HERE/index git reset

이 문제는 다음이 있을 때 발생할 수 있습니다..git하위 디렉터리 중 하나 아래에 있는 디렉터리.이 문제를 해결하려면 다른 .git 디렉터리가 있는지 확인하고 제거한 후 다시 시도하십시오.

기존의 답변 중 저에게 맞는 답변이 없었습니다.

워크트리를 사용하고 있어서 .git 폴더가 없습니다.

당신은 당신의 메인 레포로 돌아가야 합니다.그 안에서 .git/worktree/<name_of_tree>/index를 삭제합니다.

그런 다음 다른 답변에 따라 깃 재설정을 실행합니다.

원격 repo를 복제하고 .git 폴더를 문제가 있는 로컬 디렉터리로 교체하여 문제를 해결했습니다.

변경 내용을 커밋했는데 배터리 문제로 인해 노트북이 갑자기 꺼졌고 이 치명적인 인덱스 손상 오류가 발생하여 데스크톱 github에서 이 Gitrepo를 찾을 수 없습니다.그래서 나는 git-bash를 사용하여 아래에 언급된 명령을 실행했고 모든 것이 정상적으로 돌아갔습니다.

rm -f .git/index
git reset

이 문제는 git 파일 또는 brach 변경으로 인해 발생합니다.그런 다음 cmd에서 이 명령을 실행해야 합니다.

  1. del.git\index
  2. git reset --hard

2개의 명령을 실행한 후 GitRepo가 잘 작동합니다.

서로 다른 항목을 혼합하면 보고서가 손상된 것처럼 보일 수 있습니다.git버전

새 Git 버전으로 터치된 로컬 리포지토리는 이전 Git 버전과 역호환되지 않습니다.새로운 git 저장소는 이전 git 버전으로 손상된 것처럼 보입니다(나의 경우 git 2.28 breaked repo for git 2.11).

이전 Git 버전을 업데이트하면 문제가 해결될 수 있습니다.

윈도우즈 PowerShell의 경우 다음과 같아야 합니다.

rm -Force .git/index
git reset

저도 같은 오류가 발생하여 승인된 답변에 설명된 대로 수정을 시도했습니다.그러나 인덱스를 재설정한 직후 인덱스가 다시 손상되었습니다.

문제는, 제가 사용하고 있었다는 것입니다.git bisect어제 벌레를 찾았지만, 달리는 것을 잊었습니다.git bisect reset퇴근 후에 청소를 해야 합니다.오늘 제가 변경을 시작할 때, 아직 이등분 모드에 있고 변경 사항을 적용하려고 시도하는 중이었기 때문에 혼란스러웠습니다.나 또한 그냥 달릴 수 없었습니다.git bisect reset이미 변경 사항이 있었기 때문입니다.

이 문제를 해결하려면 루트 디렉터리의 gitbash에서 다음을 실행합니다.

git stash -m <message>
git bisect reset        # You are now most likely in detached head mode
git checkout <branch>
git stash apply         # If you have multiple stashes, make sure 
                          to apply the correct one

경우 인덱스를 제거하거나 재설정할 필요가 없습니다!

저는 간단한 속임수를 썼어요.보고서를 새 폴더에 복제합니다..git 폴더를 새 폴더에서 repo의 이전 폴더로 복사하여 .git 폴더를 대체했습니다.

rm -f .git/index
git reset

더 많은 정보는 https://www.chris-shaw.com/blog/quick-fix-for-git-corrupt-index 에서 확인할 수 있습니다.

이전 버전의 파일로 복원을 시도할 수도 있습니다(Windows OS를 사용하는 경우).

언급URL : https://stackoverflow.com/questions/1115854/how-to-resolve-error-bad-index-fatal-index-file-corrupt-when-using-git

반응형