[Git] loose object file corrupt

imtaejong·2020년 6월 29일
0

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에는 문제가 된 시점 직전까지 저장이 되어있고,
노트북 내 소스는 문제가 없는 최신 상태로 남아있었습니다.

문제 해결을 위해 아래 절차를 수행했습니다.

  1. 혹시 모를 상황에 대비해 로컬에 있는 최신 소스를 폴더째 복사해서 백업을 합니다.
  2. 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

잘 됩니다
:)

0개의 댓글