이 글은 본인이 나중에 찾아보기 편하게 기록을 위해 적었습니다.
깃랩에서 열심히 작업한 프로젝트를 깃허브로 옮기려고 했는데, 깃랩은 lfs가 이미 활성화된 상태여서 100mb가 넘는 산출물인 apk 파일을 커밋할 때 문제가 없었지만, [Settings] - [Repository] - [Mirroring repositories] 기능을 통해 깃허브로 미러링하는데 대략 아래와 같은 에러가 발생했다.
push to mirror: git push: exit status 1, stderr:
"remote: warning: File exec/BackEnd-0.0.1-SNAPSHOT.jar is 57.89 MB;
this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: warning: File exec/*****.apk is 97.88 MB;
this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: Trace:
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File exec/*****.apk is 181.18 MB;
this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected.
You may want to try Git Large File Storage - https://git-lfs.github.com.
To https://<새로운 git 주소(github)>
! [remote rejected] develop -> develop (pre-receive hook declined)
...
구글링을 통해 찾아본 결과, 방법을 찾아서 실행했고, 성공적으로 깃허브로 미러링할 수 있었다.
복사하고자 하는 저장소의 bare clone 생성
git clone --mirror https://gitlab.com/exampleuser/old-repository.git
클론 후에는 대략 아래와 같은 폴더들이 old-repository.git 폴더 안에 생성된다.
1번에서 다운로드 받은 bfg의 jar 파일을 해당 경로에 넣어주자.
3. commit history에서 large file을 찾아 트랙킹(ex: apk, jar 확장자를 가진 파일)
git filter-branch --tree-filter 'git lfs track "*.{apk,jar}"' -- --all
cd old-repository.git
java -jar bfg-1.14.0.jar --no-blob-protection --convert-to-git-lfs '*.apk'
java -jar bfg-1.14.0.jar --no-blob-protection --convert-to-git-lfs '*.jar'
git push --mirror <git 저장소>
다른 게시글들에서 이런 상황은 별로 다루지 않아 이 부분이 가장 헷갈렸었다. 나만 겪은 증상인가?
Compressing objects 단계가 완료되었다는 메세지 이후로 아무런 메시지도 출력이 되지 않고, 다시 새로운 명령어를 입력할 수 있는 상태인 $ 표시가 나타나지도 않는 것이었다.
다음 단계가 진행 중이라는 메세지가 출력되지 않는데다가 반응이 없는 gitbash 콘솔을 보며 괜히 '이거 뭔가 에러난거 아냐?' 하면서 끄고 다시하고를 몇 번 했는데...
결론은 이런 상황에서도(비록 보이지는 않지만) 작업은 진행 중이라는 사실...
몇 번 껐다 키면서 진행 상황이 보일때는 또 보여서 더 아리송했었다.
참고: https://hongjuzzang.github.io/howto/git_mirror/
https://velog.io/@sugenius77/Gitlab%EC%97%90%EC%84%9C-Github%EB%A1%9C-%EB%AF%B8%EB%9F%AC%EB%A7%81 https://gyoogle.dev/blog/github/GitHub%20repository%20%EB%AF%B8%EB%9F%AC%EB%A7%81.html