git lfs(Large File Storage) 는 dataset,audio,video 같은 용량이 큰 파일을 저장해주는 서비스이다.
github 은 파일 1개 용량이 100MB 넘는 파일을 푸시를 막고 있다.
100MB 넘은 파일을 push하면 다음과 같은 에러가 발생한다.
remote: error: File aaa.zip is 100.59 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
! [remote rejected] master -> master (pre-receive hook declined)
https://github.com/settings/billing > git lfs data 를 보면 계정당 1GB 용량까지는 무료고 그 이상은 유료다.
# git lfs 설치
brew install git lfs
# 현재 계정 lfs 초기화
git lfs install
# 초기화 하면 ~/.gitconfig 설정에 다음 내용이 추가된다.
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
# 이제 github 프로젝트 디렉토리로 이동한다.
# 트랙된 파일들은 LFS 로 저장되고 관리된다.
git lfs track "*.jpg"
git lfs track "*.zip"
git lfs track "*.tar.gz"
# 트랙되고 있는 패턴 보기
git lfs track
# .gitattributes 에 다음과 같이 설정되니 이 파일을 직접 수정해도 된다.
cat .gitattributes
*.jpg filter=lfs diff=lfs merge=lfs -text
*.tar.gz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
# .gitattributes 파일을 커밋해야 github 에서 lfs 로 트랙할 수 있다.
git add .gitattributes
git commit -a -m "add lsf settings"
git push
# 이제 파일을 커밋 및 푸시
git add xelloss.jpg
git add pizza_or_not_pizza.zip
git commit -a -m "lsf test"
git push
# 커밋된 트랙 파일들 보기
git lfs ls-files
# github 에서 파일을 클릭하면 다음과 같이 LFS 에 저장되어있다고 나오며 download 할 수 있다.
comments:
댓글 쓰기