[Git] Repository mirror, lfs를 사용해 100MB가 넘는 깃 리포지토리 미러링하는 법, 저장소 옮기는 법 (with remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.)
2022. 11. 28.
반응형

gitlab에서 작업하던 repository를 github로 옮기기 위해 세 시간이 넘도록 개고생한 결과를 이 블로그에 기록하고자 한다.

나 같은 사람들이 생기지 않도록^^,,,,

 

나의 경우 그냥 원래 리포지토리에 100MB가 넘는 파일이 올라가 있었는데 깃허브에는 100MB가 넘는 파일을 올릴 수가 없어서 계속 reject를 당했다. 그 부분에 대해서 중점적으로 다룰 것!!

(remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.)

이 에러가 바로 그 에러다.

 

순서대로 그대로 따라오세요.

웬만하면 빈 폴더를 하나 준비할 것!

 

 

 

그 폴더 안에서

 

1. 밑의 파일을 넣어둔다.

 

bfg-1.14.0.jar
13.81MB

 

(미래에 이 글을 보는 사람들에게: 버전이 너무 구버전일 경우 bfg jar 구글에 검색해서 다운로드하세요)

 

2. 원본 깃에서 파일을 가져온다.

git clone --mirror 원본 깃 주소

 

3. 100MB짜리 커밋 내역, 파일을 처리한다.

java -jar bfg-1.14.0.jar --no-blob-protection --strip-blobs-bigger-than 100M 다운 받은 git 폴더명

 

나 같은 경우 여기서 계속 잘 안됐는데 모든 블로그에는 --strip-blobs-bigger-than 이 옵션만 있고

--no-blob-protection이 없어서 안됐다. 스택오버플로우에 구글링 해서 알게 됐다...

그때 났던 에러: these are your protected commits, and so their contents will NOT be altered:

 

 

 

 

 

4. git 폴더 안으로 들어간다.

cd 깃 폴더명

 

5. 아까 처리한 파일을 정리한다.

git reflog expire --expire=now --all && git gc --prune=now --aggressive

 

6. 처리 내역을 깃에 반영한다.

git push

 

7. 깃 원격 저장소 이름을 확인한다.

git remote -v

 

ex)

origin 깃 주소 (fetch)
origin 깃 주소 (push)

=> origin이 이름

 

8. 새로 옮길 리포지토리를 등록한다.

git remote add [원격저장소 이름] [옮길 깃 주소] //괄호 없어도 됨

*이 이름은 origin이랑 다름

 

9. 새로 옮길 깃에 파일을 옮긴다.

git push 아까 적은 원격저장소 이름

 

이 방법을 찾기 위해 얼마나 많은 시간과 블로그를 참고했는지^^,, 여러분들은 제발 이 블로그를 쉽게 발견해서 빠르게 문제를 해결하기를 빌어요...

 

 

 

반응형
myoskin