[git] Git LFS로 깃허브에 대용량 파일 업로드하기

diveintoo·2022년 5월 11일
0
post-custom-banner

졸업 프로젝트를 하면서 용량이 큰 파일을 깃허브에 올려야했는데 푸시하는 과정에서 다음과 같은 오류가 떴다!

error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.

GitHub은 100MB 이상의 파일을 올릴 수 없기 때문에 위와 같은 에러 메시지가 나오는 것이다.

에러 메시지에 안내된 git-lfs는 Large File Storage의 준말로, 100MB이상의 파일을 github에서 관리하기 위해 사용된다.

그러면 이를 사용해서 문제를 해결해보자!


git-lfs 설치

MacOS Homebrew를 사용해서 설치한다.
brew install git-lfs

lfs 적용

업로드 파일이 있는 repository로 이동해서 다음의 명령어로 lfs를 적용한다.
git lfs install

파일 추적

git lfs track '파일명'

git add

lfs로 트래킹하는 파일에 대한 정보는 .gitattributes 에서 관리된다.

따라서 .gitattributes와 업로드 파일을 함께 add 해준다.
git add .gitattributes
git add '파일명'
git commit -m "커밋메세지"

만약 기존에 add했던 파일을 lfs로 관리해야한다면 track하기 전에 다음의 명령어로 unstaging 시켜야한다.
git rm -r --cached '파일명'

git push

원래 푸시하는 것처럼 해주면 된다.
git push origin main

그런데 이 과정에서 계속 가장 처음 만났던 error: GH001: Large files detected. 에러가 나타났다.
찾아보니 이전에 lfs를 사용하지 않고 대용량 파일을 커밋했던 내역이 함께 push 되어서 에러가 사라지지 않은 것으로 판단했다.
따라서 lfs를 사용하지 않았던 커밋 이전으로 reset한 후 다시 commit을 하니 오류가 사라졌다!!


Push 성공!!

lfs 추적 확인

lfs로 관리되는 파일을 보고싶으면 아래의 명령어를 입력해보자.
git lfs ls-files --all

lfs 파일 pull

프로젝트를 clone 받을 때, git lfs로 관리중인 파일은 lfs pointer만 가지고 있다.
따라서 해당 파일은 따로 pull을 받아줘야한다.
git clone 'project url'
git lfs pull

post-custom-banner

0개의 댓글