데이터과학 삼학년

[GIT] LFS (Large File System) 본문

DevOps

[GIT] LFS (Large File System)

Dan-k 2022. 12. 2. 00:35
반응형

Git은 여러 소스코드 파일을 관리하기 위한 VCS(version control system)이다. 

경우에 따라 Git에 큰 용량의 파일을 올려놓아야 하는 경우가 있다. (형상관리든 파일공유든 간에)

하지만 local branch의 100mb 이상 크기의 파일을 git remote에 push를 할때 push limit size error가 날 것이다.

(100mb가 limit size이기 때문)

데이터 과학자인 경우, 가령 학습한 모델이라든지, 학습 데이터를 올릴 때 이런 문제를 많이 맞닥뜨리게 된다.

 

이럴때 사용할 수 있는 것이 Git LFS(Large File System)이다.

 

Git LFS 

- git의 LFS, 말 그대로 큰 용량(사이즈)의 파일을 관리하기 위한 시스템

- 별도의 LFS의 서버에 해당 파일을 저장하고, GIT에는 해당 파일을 찾을 수 있는 해쉬값을 대신해 남겨놓는 형태

- git에는 lfs pointer를 가지고 있는 형태로, 해당 파일을 pull하면 LFS서버에서 lfs pointer를 조회해 해당 파일을 가지고 오는 개념

https://git-lfs.github.com/

 

Git LFS 사용법

1. LFS를 사용하고자하는 repo로 들어감

- 해당 repo에서 아래 명령어를 치면, lfs initializer 어쩌고 하며 활성화됨

- install이라고 되어있지만, 사실상 인스턴스 만드는 것처럼 사용하겠다고 선언하는 형태로 이해

git lfs install

2. LFS로 관리하고자 하는 파일을 track

- LFS는 파일을 직접 지정해 해당 파일을 관리할 수 도 있고, 파일의 형식 -> 즉 .png, .csv 등과 같은 파일 형태에 따라 이하 파일 형태이면 앞으로 push할때는 해당 파일은 LFS로 관리될 수 있도록 하는 형태다

# 특정 파일을 lfs로 관리
git lfs track "./images/img.psd"

# psd 확장자를 가진 파일을 lfs로 관리
git lfs track "*.psd"

# 특정 폴더 이하의 파일을 lfs로 관리
git lfs track "/myfolder/**"

3. 위 명령어를 입력하면 .gitattributes 라는 파일에 track하는 대상이 설정됨

- .gitattributes 파일도 추가

git add .gitattributes

4. 관리하고자 하는 파일들을 push~~!

git add file.psd
git commit -m "Add design file"
git push origin main

5. Git track 해제

- git lfs track으로 설정해놓은 것을 해제하고 싶을때

# lfs 관리 파일 목록 확인
git lfs ls-files

# git lfs 해제
git lfs uninstall

# git
git rm --cached <track 파일>

 

* 딥러닝 모델을 위한 lfs track

git lfs track "*.pkl" # 피클 
git lfs track "*.model" # TF/Keras
git lfs track "*.h5" # TF
git lfs track "*.pb" # TF
git lfs track "*.ckpt" # TF
git lfs track "*.pt" # Pytorch
git lfs track "*.pth" # Pytorch
git lfs track "*.bin" # TF/PyTorch
git lfs track "*.zip" # 데이터셋
git lfs track "*.tar" # 데이터셋
git lfs track "*.tar.gz" # 데이터셋
git lfs track "*.targz" # 데이터셋

 

 

 

참조

https://confluence.curvc.com/pages/releaseview.action?pageId=91202833 

https://hbase.tistory.com/221

https://git-lfs.github.com/

https://github.com/git-lfs/git-lfs/wiki/Installation

https://beomi.github.io/2020/05/29/Gitlab-for-LFS/

728x90
반응형
LIST
Comments