git lfs(Large File Storage) command

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:

댓글 쓰기