[Git] Git LFS 란? LFS 를 통해서 무거운 파일 처리하기

Date:     Updated:

카테고리:

태그:

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 attributes

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

Git 카테고리 내 다른 글 보러가기

첫 번째 글입니다 가장 최근 글입니다

댓글 남기기