Program Club

git commit 중지됨-트리 빌드 오류

proclub 2020. 12. 3. 20:47
반응형

git commit 중지됨-트리 빌드 오류


변경 사항을 적용 할 수 없습니다.

$ git commit
error: invalid object 100644 13da9eeff5a9150cf2135aaed4d2e337f97b8114 for 'spec/routing/splits_routing_spec.rb'
error: Error building trees

지금까지 시도했습니다.

$ git fsck | grep 13da
missing blob 13da9eeff5a9150cf2135aaed4d2e337f97b8114

그리고 또한:

$ git prune
error: Could not read 1394dce6fd1ad15a70b2f2623509082007dc5b6c
fatal: bad tree object 1394dce6fd1ad15a70b2f2623509082007dc5b6c

그리고 또한:

$ git fsck | grep 13da
missing blob 13da9eeff5a9150cf2135aaed4d2e337f97b8114

하지만 도움이되지 않았습니다. 파일을 삭제하고 커밋 한 후 다시 도입해야합니까? git commit을 다시 가져 오면 약간의 역사를 잃을 의향이 있습니다.


git 저장소에 손상된 개체가있을 수 있습니다.

이 저장소의 원격 또는 다른 복제본이있는 경우 문제가있는 파일을 가져와 로컬 저장소에서 대체 할 수 있습니다.

원하는 파일은 다음 위치에 있습니다.

/repo/.git/objects/13/da9eeff5a9150cf2135aaed4d2e337f97b8114

이 오류는 hash가 포함 된 파일 13da9eeff5a9150cf2135aaed4d2e337f97b8114이 있고이 해시가에 없거나 .git/objects/../비어 있음을 의미합니다. 이 오류가 발생했을 때 파일 경로없이 오류에이 해시 만있었습니다. 그럼하려고 노력 git gc --auto하고 git reset --hard. 이 명령 중 하나 (이 명령으로 문제가 해결되지 않음) 후 오류를 유발하는 파일의 경로를 얻었습니다.

객체 해시를 생성하기 만하면됩니다.

git hash-object -w spec/routing/splits_routing_spec.rb

자세한 내용은 설명서를 참조하십시오 . 문서에는이 오류를 복구하는 추가 방법이 있습니다.

추신 이것은 나에게 도움이 된 유일한 방법이었습니다.


git reset --hard 리포지토리를 정상으로 되돌려 야하지만 커밋되지 않은 변경 사항은 손실됩니다.


변경 사항으로 인해 문제가있는 파일이 추가되는 경우 색인에서 제거하고 다시 추가 할 수 있습니다.

git reset <file> 
git add <file>

나에게 그것은 단지 권한 문제였습니다. '수도'로 달리면 효과가있었습니다. 아마도 Mac 환경과 관련이 있습니다.


이는 Dropbox 및 Jianguoyun과 같은 일부 타사 동기화 앱으로 인해 발생할 수 있습니다. 내 경험에 따라 두 가지 방법이있을 수 있습니다.

  1. 최근 동기화 작업을 실행 취소 할 수 있습니다.
  2. 폴더에서 관련 파일을 제거하고 커밋 한 다음 파일을 다시 이동합니다.

쉬운 해결 방법, 파일의 트랙에 실제로 신경 쓰지 않는 경우 파일을 복제하고 원본을 제거하고 먼저 삭제 및 추가를 커밋 한 다음 원본으로 다시 이름을 바꿀 수 있습니다.

Git은 정상적으로 다시 빌드되어야합니다.


제 경우에는 다음과 같이 해결했습니다.

git reset --mixed


제 경우에는 깨진 원격 지점의 파일입니다. 나는 그것을 다음과 같이 해결했다.

  1. 원격 분기를 전혀 제거 $ git remote rm origin
  2. 리모컨을 다시 추가하십시오. $ git remote add origin <the-remote-url>
  3. 리모컨을 다시 가져옵니다. $ git fetch origin
  4. 원래의 원하는 분기로 재설정 하드 (예 :) develop:$ git reset --hard origin/develop

그러면 모든 것이 정상으로 돌아갑니다.


제 경우에는 다른 버전의 git 때문이었습니다. 나는 git의 공식 Windows 포트를 통해 내 저장소를 사용하고 있었고 동일한 버전 번호로 MinGW 포트를 사용하기 시작했습니다.

MinGW git로 커밋하려고 할 때이 문제가 발생하기 시작했습니다. Windows Git으로 다시 전환하면 문제가 해결되었습니다.

참고 URL : https://stackoverflow.com/questions/14448326/git-commit-stopped-working-error-building-trees

반응형