[Git] Git LFS 란? LFS 를 통해서 무거운 파일 처리하기
카테고리: Git
Git LFS 란?
Unity를 깃에 올리다 보면 한번쯤은 접하게 될 LFS
라는 녀석이 있습니다.
원래 git 이라는 소프트웨어는 소스코드들을 담고 있는 여러개의 작은 텍스트 파일만 처리하도록 설계 되었습니다. 그렇기 때문에, 프로젝틑 내의 리소스 파일의 크기가 클 경우 문제가 발생할 수 있습니다.
그럼에도 불구하고, 큰 파일들을 그냥 git으로 관리하게 되면, 프로젝트의 크기도 엄청 커지며, git clone, git pull 동작 시 프로젝트를 불러오는데 오랜 시간이 걸리는 문제가 발생합니다.
이를 위해 remote 저장소에서 대용량의 파일을 잘 다루기 위해 해당 파일을 별도의 저장소에 저장하고 다운로드 하는 기능이 추가되었습니다.
이것이 LFS(Large File Storage) 입니다.
100MB 이상인 파일들이 목록에 있으면 Git 툴 에서 다음과 같은 에러를 뿜게 됩니다.
LFS 설정법
우선 LFS 를 설치하기 위서는 git bash 를 열어야 합니다.
제가 사용하는 SourceTree 에는 설치할 때 부터 git bash 를 열 수 있도록 연결이 되어 있지만, Git Hub DeskTop 에서는 git bash 를 열기 위해 연결하는 과정이 필요합니다.
git bash 연결하기
git bash 를 연결 하였다면, 이제 LFS 를 설치 할 준비가 되었습니다.
LFS 설치
우선, LFS 를 설치해야 합니다. 명령어는 다음과 같습니다.
$ git lfs install
이렇게 하면 LFS 가 설치가 됩니다.
추적 할 대상 지정하기
LFS 경고가 뜨면, 어떤 파일들이 LFS 대상이 되는지가 뜨게 됩니다. 해당 파일들의 이름을 정확하게 입력하여, 추적 할 대상을 고를 수 도 있지만, 하나하나씩 전부 추가한다는 것은 무리가 있기 때문에, 확장자로 구분을 짓습니다.
명령어는 다음과 같습니다.
# 특정 파일만 lfs로 추적하고 싶을 때
$ git lfs track "파일 경로"
# 해당하는 확장자 전부를 lfs로 추적하고 싶을 때
$ git lfs track "*.mp4"
해당 명령어를 사용하면, 확장자가 dll 인 모든 파일들을 추적하게 됩니다.
track 명령어를 사용해서 처음 추적 대상을 적게 되면, git 프로젝트 경로 안에 .gitAttribute
라는 파일이 생기게 됩니다.
해당 파일 안에 추적해야 할 대상에 대한 내용이 기입되어 있습니다.
Git Attribute 업로드
.gitAttribute
를 만드셨다면, 해당 파일을 먼저 git 저장소에 push 해주셔야 합니다.
업로드 재시도
위의 과정을 거치게 되면, 이제 .dll
의 확장자를 가진 모든 파일들은 LFS가 추적하게 됩니다.
이까지 완료하였다면, 다시 commit 후, git 서버에 업로드를 해봅시다.
업로드가 완료된 것을 알 수 있습니다.
LFS 해제 방법
git을 사용하다 보면 LFS 를 더이상 사용하지 않아야 할 상황도 생길 수 있습니다.
LFS 추적대상 삭제
lfs 로 관리하고 있던 파일들을 다시 기존의 git 으로 관리하고 싶은 상황이 생길 수 있습니다. 그럴때는 lfs 의 추적을 해제하고, 다시 git 이 추적 할 수 있도록 설정해주셔야 합니다.
다음과 같이 명령어를 입력해 주시면 됩니다.
$ git lfs untrack <file>
(또는 .gitattributes에서 수동으로 삭제 후)
$ git rm --cached <file>
$ git add <file>
LFS 설치 해제
마지막으로 lfs를 uninstall 해주시면 됩니다.
명령어는 다음과 같습니다.
$ git lfs uninstall
댓글 남기기