크기가 큰 파일을 LFS를 이용해 Git에서 관리하기

크기가 큰 파일을 LFS를 이용해 Git에서 관리하기

LFS(Large File Storage)를 이용해 큰 파일을 Git으로 다룰 수 있습니다.

Goal

  • LFS를 이용하여 크기가 큰 파일을 Github에 다운로드, 업로드 해봅니다.

What is LFS

LFS(Large File Storage)

  • Git LFS(Large File Storage)는 말그대로 큰 파일을 다를수 있게 해주는 기술입니다.
  • 오디오, 비디오와 같은 같은 대용량 파일을 Git 내부의 텍스트 포인터로 대체하고, 깃헙에 저장하고 내려받는것을 도와줍니다.
  • LFS을 이용하여 Giga 단위의 큰 파일을 깃헙에 업로드, 다운로드할 수도 있습니다.

How

특정 레포지토리에 LFS를 적용해 봅니다.

  • brew가 깔려있다고 가정하고 설명합니다.
1
$ brew install git lfs
  • lfs를 설치합니다.
1
2
$ cd ./myRepo
$ sudo git lfs install
  • 원하는 Repo 디렉토리로 이동하여 명령을 넣어줍니다.
1
2
3
4
git lfs install --system
git lfs install --force

...etc
  • --force(기존값을 덮어쓰기)와 같이 옵션을 넣어줄 수 있습니다.
  • 좀더 자세한 내용언 문서 링크 를 참고하시면 되겠습니다.

업로드

1
2
3
4
5
6
7
8
9
-- git lfs track "{원하는 파일 확장자}"
$ git lfs track "*.psd"

-- git lfs track {FileName}
git lfs track bigVideo.avi


-- LFS 등록
$ git add .gitattributes
  • LFS로 관리되길 원하는 확장자나 파일을 등록해줍니다.
  • .gitattributesadd 한뒤 기존의 깃 사용법처럼 사용하면 됩니다.
  • 대신 파일 유형을 정의한다고해서 다른 브랜치나, 기존의 파일 형식들이 Git LFS로 변환되는 것은 아니므로 주의해야 합니다.

LFS 해제

1
$ sudo git lfs uninstall
  • 해당명령을 입력하면 lfs 설정이 해제됩니다.

Conclusion

  • Git LFS를 이용해 큰 크기의 파일들을 Git으로 다룰 수 있다.
  • 특정 파일 확장자나, 파일을 관리할수 있다.

Reference

  • https://git-lfs.github.com/
  • https://github.com/git-lfs/git-lfs/blob/main/docs/api/README.md?utm_source=gitlfs_site&utm_medium=api_spec_link&utm_campaign=gitlfs
  • https://github.com/git-lfs/git-lfs/blob/main/docs/man/git-lfs-install.1.ronn
  • https://hbase.tistory.com/221