git을 사용하는 중에 아래와 같은 에러가 떴습니다.
$ git log
error: object file .git/objects/2e/d5618eecbabf9246c7970e9990482369a16262 is empty
fatal: loose object 44a43150409fac31eb930a3c8c9de60450c20a04 (stored in .git/objects/2e/d5618eecbabf9246c7970e9990482369a16262) is corrupt
이 문제는 git
에서 바라보고 있는 포인터가 터졌다는 정도만 이해를 했습니다.
구글링을 해보니 여기서 제시한 방법을 해봤지만 제 경우는 해결이 안됐습니다.
결국 단순하게 소스를 원복하기로 합니다.
다행히 github
에는 문제가 된 시점 직전까지 저장이 되어있고,
노트북 내 소스는 문제가 없는 최신 상태로 남아있었습니다.
문제 해결을 위해 아래 절차를 수행했습니다.
git
에서 클론을 받아온 뒤 클론 받아온 대상 디렉터리에다가 노트북에 가지고 있는 최신 소스를 복사해 옵니다.단,
.git/
디렉터리를 제외하고 복사해야 합니다.
# 원본을 백업해 둘 디렉터리를 생성 후 그 곳에 하나 복사해 둡니다.
$ mkdir -p /home/jeff/backup/orgn /home/jeff/backup/merge
$ cp -r /home/jeff/project1 /home/jeff/backup/orgn
# remote에서 소스를 받아옵니다.
$ git clone git@github.com:ej31/project1.git /home/jeff/merge/project1
# .git 디렉터리를 제외하고! 나머지 소스를 복사합니다.
$ rsync -av --progress /home/jeff/backup/orgn/project1 /home/jeff/backup/merge/project1 --exclude="/.git"
# 확인해 봅니다.
$ cd /home/jeff/backup/merge/project1
$ git log
commit d5618eecbabf9246c7970e9990482369a1626220 (HEAD -> master, origin/master, origin/HEAD)
Merge: 44a4315 f17df16
Author: ej31 <me@imtaejong.com>
Date: Tue Jun 30 00:20:18 2020 +0900
Merge branch 'master' into HEAD
잘 됩니다
:)