예상보다 작은 색인 파일


81

오늘 아침 git에서이 오류가 발생하기 시작했습니다.

치명적 : 예상보다 작은 색인 파일

치명적 : git status --porcelain failed

무슨 일이 일어나고 있고 어떻게 해결해야하는지 아십니까?



예 게시하기 전에 시도했습니다. 문제는 내 색인 파일을 계속 손상시키는 내 하위 모듈에있었습니다 (이유를 모르겠습니다).
karellm

@karellm 이런 일이 일어 났는지 알아 냈습니까 ?
crmpicco

솔직히 말해서 그 원인을 조사하지 않았고 그 일도 중단되었습니다.
karellm

팁 : 내 경험상 NFS 폴더가 업데이트되지 않았기 때문일 수 있습니다. 저장소가 NFS에있는 경우 문제 해결을 시도하기 전에 몇 분만 기다리십시오. 한 시스템에서 가져온 다음 다른 시스템에서 상태를 확인한 후 두 시스템이 동일한 NFS를 마운트 한 후이 문제가 발생했습니다.
ggll

답변:


107

인덱스 파일이 손상되었지만 쉽게 다시 만들 수 있습니다. 그냥 제거하세요 ...

rm .git/index

그런 다음 준비하려는 파일을 다시 추가 할 수 있습니다.


위에서 말했듯이 색인을 계속해서 손상시키는 하위 모듈과의 충돌로 인해 작동하지 않았습니다. 하위 모듈을 제거하고 색인을 제거한 다음 모두 추가했습니다. 마침내 작동했습니다. 감사!
karellm

3
왜 이런 일이 발생합니까? 지난 2 주 동안 두 번 발생했는데 그 이유를 알 수 없습니다.
crmpicco

7
이것은 나를 위해 작동하지 않았습니다. 이 오류 이전에는 대부분 깨끗한 작업 복사본이있었습니다. 인덱스 파일을 제거하고 실행 한 후 git add .모든 단일 파일이 새 파일이고 커밋이 필요한 것처럼 작동했습니다.
Mark

1
서브 모듈이있을 때도 작동하지 않습니다. 그냥 재설정하십시오 (답변 아래).
TimZaman 2017

이것을 실행 한 후 내가 git restore --staged해야하는 것을 발견하면 모든 것을
재 커밋

90

로컬 변경 사항을 유지하려면 다음을 사용하십시오.

$ rm .git/index
$ git reset HEAD .

> Unstaged changes after reset:
  modified foo.txt
  modified bar.txt

1
왜 이런 일이 발생하는지 아십니까? 지난 2 주 동안 4 ~ 5 번 정도 저에게 일어났습니다.
crmpicco

1
이 답변이 여기에서 가장 좋습니다. 또한 git 하위 모듈을 사용하는 경우주의해야합니다. 해당 인덱스 파일도 제거하십시오 (에 있습니다 .git/modules/src). 이로 인해 (주) 인덱스 파일을 제거한 후에도 오류가 계속 발생하는 이유가 궁금했습니다.
Graftak

나는 이것이 표준적인 이유로 일어날 수 있다고 생각합니다, 프로세스가 중간에 죽었고, 디스크 공간이 부족한 것 등입니다. 제 경우에는 svn 외부 대신 빌드하는 데 사용할 디렉토리를 만들기 위해 git 폴더에 대한 심볼릭 링크를 사용할 수 있습니다. , 해당 저장소에 대한 유일한 작업은 빌드 폴더를 하드 재설정하는 데만 읽기 때문에 이상합니다.
jgmjgm 19-06-18

2

인덱스를 제거한 후에도 isses가 있고 재설정을 할 수없는 사람들에게. 변경 사항을 유지하려면 다음을 수행하십시오 (솔루션이 아니라 추악한 해결 방법!).

  1. 내가 대답에 대해 누구인지 파일의 만들기 백업 해야 작동하지만 단지의 경우 그것을 할.
  2. .git 폴더 제거
  3. 저장소를 복제합니다 (어디에서든 상관 없음). 현재 디렉토리에서 수행했습니다.
  4. 복제 .git 디렉토리에서 생성 된 파일을 현재 디렉토리에 복사합니다.
  5. 복제 된 디렉토리를 제거합니다 . 6. 선택 사항 (분기 체크 아웃을 다시 사용한 경우)
  6. Git 상태는 이제 예상대로 변경 사항을 추적하고 모든 git 명령이 작동합니다.

제 경우는 위에서 설명한 것과 같았고, git은 참조를 엉망으로 만들었습니다. Git log"당신의 브랜치가 망가진 것 같습니다"를 보여 git fsck주고 나쁜 참조에 대한 경고를주었습니다. 내가 고칠 수 있을지 모르겠지만 그렇게하는 데 많은 시간을 할애 할 것 같아 추악한 해결 방법을 찾았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.