학교 Gitlab에 있는 프로젝트를 github으로 옮기려고 했더니 push가 안됐습니다. 메시지를 보니 100mb 넘는 단일 파일은 업로드가 안된다고 나옵니다. 데이터셋이 프로젝트에 포함되어 있는게 문제가 됐습니다.

압축하면 되나? 하고 해봤는데 역시 안됩니다. 커밋 히스토리에 있으면 불가능합니다.

 

그럼 불가능한것인가? 아닙니다. 방법이 다 있습니다.

 

바로 git lfs(large file storage)를 이용하는 건데요, 큰 파일을 파일 포인터로 바꿔 프로젝트와 분리해줍니다.

Github에서는 무료로 lfs 스토리지 용량을 1GB 제공하고, 매달 Bandwidth를 1GB 제공하고 있습니다. 자세한건 문서를 확인해주세요

 

 

migrate (History)

(참고 링크: git-lfs-migrate 문서)

 

# master 브랜치에 있는 모든 zip 파일 변환
$ git lfs migrate import --include-ref=master --include="*.zip"

# 모든 브랜치에 있는 모든 zip 파일 변환
$ git lfs migrate import --everything --include="*.zip"

git 커밋 히스토리에 있는 모든 내역을 lfs에 migrate할 때 위 명령어를 입력합니다.

그 다음 force push해주면 됩니다. 빈 repo의 경우는 그냥 push 하면 됩니다

참고로 .gitattribute 파일에 lfs 관련 내용이 저장됩니다

 

저는 *.txt 파일이 데이터셋 파일이었기 때문에 *.txt를 추가했습니다.

변환 뒤 파일을 확인해보면 lfs 파일 포인터 형식으로 바뀌어져 있습니다.

 

github에서 보면 'Stored with Git LFS'라고 표시된 것을 확인할 수 있습니다.


  1. 박작가님 2020.08.05 11:22 신고 댓글주소 수정/삭제 댓글쓰기

    마이그레이션 방법 잘 보고 갑니다 :)