
기본적으로 SSAFY의 모든 프로젝트는 GitHub가 아닌 GitLab을 활용해서 진행된다. 그리고 모두 싸피 관계자만 볼 수 있게 되어 있어서, 포트폴리오로 활용하려면 깃허브 반출이 필수!
2학기에 진행한 세 개의 프로젝트 중 마지막 프로젝트를 제외한 두 프로젝트는 모두 용량이 큰 파일 때문에 문제가 발생했었는데, 동기들 덕분에 잘 해결할 수 있었다.
그리고 그 도움을! 블로그에 한 번 정리해보고자 한다 :)
기존의, 내가 미러링하고 싶어하는 대상 ➡ 깃랩 레포지토리
새로운, 내가 미러링한 것을 반영하고 싶은 곳 ➡ 깃허브 레포지토리
100mb를 초과하는 파일이 없을 때
git clone --mirror 깃랩레포주소
[예시]
git clone --mirror https://lab.ssafy.com/~~~

해당 폴더명은 레포지토리명.git 이다
cd 레포지토리명.git/
git push --mirror 새로운깃허브주소
[예시]
git push --mirror https://github.com/hyunspace/newRepo
만약 100MB가 넘는 파일이 있다면, 오류가 발생한다. 이 때는 두 번째 방법을 활용하자!

100mb를 초과하는 파일로 인해 바로 push할 수 없을 때
git lfs install
git-lfs가 뭔지 궁금하신 분들은 다음 포스트를 참고해보세요!
대용량 파일 github에 push할 때 생기는 오류 정복하기(feat. git-lfs, bfg)
bfs 설치 페이지 방문

파일은 레포지토리명.git 폴더와 같은 곳에 다운로드 받아주세요!

대용량 파일을 트래킹해보겠습니다. 아마 파일 용량 확인 없이 바로 push를 하셨으면, 오류가 나면서 어떤 파일이 문제였는지 보셨을 텐데요. 그 때 파일의 확장자를 잘 기억하고 있다가 여기서 적어주시면 됩니다.
git filter-branch --tree-filter 'git lfs track "*.{100MB 넘는 파일의 확장자명}"' -- --all
저 같은 경우에는 msi 파일이 문제였던지라 해당 파일을 넣었었는데, 다른 문제가 발생해서... 그냥 모든 파일을 다 찾으라고 시켰습니다.
이렇게요!
git filter-branch --tree-filter 'git lfs track "*.*"' -- --all
특정 확장자를 적지 않고 모든 파일을 찾을 경우 꽤 오랜 시간이 걸립니다!
완료 되고 나면 이렇게 문제가 되는(?) 부분을 다시 썼다고 쭉! 나옵니다

만약 특정 확장자를 적으셨다면
java -jar BFG.jar저장경로 --convert-to-git-lfs '*.확장자'
라는 코드를 확장자 개수 만큼 쳐주시면 되고요(확장자에 각 확장자를 넣어서!)
저처럼 확장자를 지정하지 않고 모든 파일을 검사 + bfs 파일 위치가 저와 같다면
java -jar ../bfg-1.14.0.jar --convert-to-git-lfs '*.*'
라고 쳐주시면 됩니다.
여기서 주의하실 점은
.jar까지 입력 해야 한다는 겁니다.
다 왔습니다! 이제 깃허브로 푸시하기만 하면 됩니다 :)
git push --mirror 새로운깃허브주소
이 때 명령어 입력 후에도 아~무런 반응이 없을 수 있는데요. 일단 기다립시다...! 저는 문제가 생긴 줄 알고 계속 ctrl+C를 눌러서 종료 시켰었는데요, 알고보니 그냥 아주 아주 오래 걸리는 것 뿐이었습니다 ^_ㅠ
이 상태에서 반응이 없어도 그냥 기다려주세요! 언젠가는 다음 줄이 뜹니다!

대용량일 때 git clone --mirror도 안되던데 괜찮던가요?