일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- GenericGBQException
- GCP
- requests
- API
- top_k
- 상관관계
- integrated gradient
- TensorFlow
- BigQuery
- subdag
- Airflow
- tensorflow text
- 공분산
- spark udf
- gather_nd
- grad-cam
- chatGPT
- airflow subdag
- Counterfactual Explanations
- youtube data
- XAI
- session 유지
- Retry
- API Gateway
- hadoop
- login crawling
- correlation
- flask
- UDF
- 유튜브 API
- Today
- Total
데이터과학 삼학년
[GIT] LFS (Large File System) 본문
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를 조회해 해당 파일을 가지고 오는 개념
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
'DevOps' 카테고리의 다른 글
[Airflow] Xcom을 이용한 task간 변수 전달 (0) | 2023.01.26 |
---|---|
[Airflow] Airflow context variable (0) | 2023.01.24 |
Load balancing을 위한 crontab - 젠킨스 스케쥴러 (h * * * * ) (0) | 2021.04.07 |
젠킨스 타임존 설정 (0) | 2021.03.14 |
젠킨스 파이프라인 관리 (공통화 활용) (0) | 2020.11.09 |