질문 : Git 오류 수정 방법 : 개체 파일이 비어 있습니까?
변경 사항을 커밋하려고하면 다음 오류가 발생합니다.
error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty
fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt
git fsck
시도했다.
error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty
fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt
이 오류를 해결하는 방법을 알고 계십니까?
답변
비슷한 문제가있었습니다. 내 노트북은 git 작업 중에 배터리가 부족합니다. 우우.
나는 백업이 없었습니다. (NB Ubuntu One은 git을위한 백업 솔루션이 아닙니다. 이는 정상적인 저장소를 손상된 저장소로 덮어 쓰는 데 도움이됩니다.)
git 마법사에게 이것이 문제를 고치는 잘못된 방법이라면 댓글을 남겨주세요. 그러나 그것은 나를 위해 일했습니다 ... 적어도 일시적으로.
1 단계 : .git의 백업을 만듭니다 (실제로 변경하는 모든 단계 사이에이 작업을 수행하지만 새 사본 이름 (예 : .git-old-1, .git-old-2 등)) :
cd ~/workspace/mcmc-chapter
cp -a .git .git-old
2 단계 : git fsck --full
git fsck --full
error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e is empty
fatal: loose object 8b61d0135d3195966b443f6c73fb68466264c68e (stored in .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e) is corrupt
3 단계 : 빈 파일을 제거합니다. 나는 도대체 무엇인지 알아 냈다. 어쨌든 공백입니다.
rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e
rm: remove write-protected regular empty file `.git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e'? y
3 단계 : git fsck
다시 실행합니다. 빈 파일을 계속 삭제하십시오. 당신은 또한 수있는 cd
에 .git
디렉토리 및 실행 find . -type f -empty -delete -print
는 모든 빈 파일을 제거합니다. 결국 git은 실제로 객체 디렉토리에서 무언가를하고 있다고 말하기 시작했습니다.
git fsck --full
Checking object directories: 100% (256/256), done.
error: object file .git/objects/e0/cbccee33aea970f4887194047141f79a363636 is empty
fatal: loose object e0cbccee33aea970f4887194047141f79a363636 (stored in .git/objects/e0/cbccee33aea970f4887194047141f79a363636) is corrupt
4 단계 : 빈 파일을 모두 삭제 한 후 결국 실제로 실행중인 git fsck
git fsck --full
Checking object directories: 100% (256/256), done.
error: HEAD: invalid sha1 pointer af9fc0c5939eee40f6be2ed66381d74ec2be895f
error: refs/heads/master does not point to a valid object!
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229
5 단계 : git reflog
사용해보십시오. 내 HEAD가 고장 났기 때문에 실패했습니다.
git reflog
fatal: bad object HEAD
6 단계 : Google. 이것을 찾으십시오. reflog의 마지막 두 줄을 수동으로 가져옵니다.
tail -n 2 .git/logs/refs/heads/master
f2d4c4868ec7719317a8fce9dc18c4f2e00ede04 9f0abf890b113a287e10d56b66dbab66adc1662d Nathan VanHoudnos <nathanvan@gmail.com> 1347306977 -0400 commit: up to p. 24, including correcting spelling of my name
9f0abf890b113a287e10d56b66dbab66adc1662d af9fc0c5939eee40f6be2ed66381d74ec2be895f Nathan VanHoudnos <nathanvan@gmail.com> 1347358589 -0400 commit: fixed up to page 28
7 단계 : 6 단계에서 HEAD가 현재 마지막 커밋을 가리키고 있음을 배웠습니다. 따라서 부모 커밋을 살펴 보겠습니다.
git show 9f0abf890b113a287e10d56b66dbab66adc1662d
commit 9f0abf890b113a287e10d56b66dbab66adc1662d
Author: Nathan VanHoudnos <nathanvan@XXXXXX>
Date: Mon Sep 10 15:56:17 2012 -0400
up to p. 24, including correcting spelling of my name
diff --git a/tex/MCMC-in-IRT.tex b/tex/MCMC-in-IRT.tex
index 86e67a1..b860686 100644
--- a/tex/MCMC-in-IRT.tex
+++ b/tex/MCMC-in-IRT.tex
작동했습니다!
8 단계 : 이제 HEAD를 9f0abf890b113a287e10d56b66dbab66adc1662d로 가리켜 야합니다.
git update-ref HEAD 9f0abf890b113a287e10d56b66dbab66adc1662d
불평하지 않았습니다.
9 단계 : fsck의 내용 확인 :
git fsck --full
Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229
10 단계 : 캐시 트리의 잘못된 sha1 포인터가 (현재 구식) 인덱스 파일 ( source )에서 가져온 것처럼 보였습니다. 그래서 나는 그것을 죽이고 repo를 재설정했습니다.
rm .git/index
git reset
Unstaged changes after reset:
M tex/MCMC-in-IRT.tex
M tex/recipe-example/build-example-plots.R
M tex/recipe-example/build-failure-plots.R
11 단계 : fsck 다시 살펴보기 ...
git fsck --full
Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
매달려있는 얼룩은 오류가 아닙니다 . 나는 master.u1conflict와 관련이 없으며 이제 작동하고 있으므로 더 이상 만지고 싶지 않습니다!
12 단계 : 로컬 편집을 따라 잡기 :
git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: tex/MCMC-in-IRT.tex
# modified: tex/recipe-example/build-example-plots.R
# modified: tex/recipe-example/build-failure-plots.R
#
< ... snip ... >
no changes added to commit (use "git add" and/or "git commit -a")
git commit -a -m "recovering from the git fiasco"
[master 7922876] recovering from the git fiasco
3 files changed, 12 insertions(+), 94 deletions(-)
git add tex/sept2012_code/example-code-testing.R
git commit -a -m "adding in the example code"
[master 385c023] adding in the example code
1 file changed, 331 insertions(+)
create mode 100644 tex/sept2012_code/example-code-testing.R
앞으로 사람들에게 유용 할 수 있기를 바랍니다. 효과가있어서 다행입니다.
출처 : https://stackoverflow.com/questions/11706215/how-to-fix-git-error-object-file-is-empty
'개발관련 > Git' 카테고리의 다른 글
Git 워크 플로 및 리베이스 및 병합 질문 (0) | 2021.10.08 |
---|---|
Git-현재 분기 바로 가기 푸시 (0) | 2021.10.08 |
Visual Studio Code를 Git의 기본 편집기로 사용하는 방법 (0) | 2021.10.07 |
수정 된 커밋을 원격 Git 저장소에 푸시하는 방법 (0) | 2021.10.07 |
커밋하기 전에 'git add'를 실행 취소하는 방법 (0) | 2021.10.06 |