banner
  1. About
  2. Blog
  3. Contact
프로그래밍 · 

[Git] Large files detected 오류 해결하는 법(+유니티 팁)


오류 메시지는 이렇게 나옵니다.




large files detected. you may want to try git large file storage - https //git-lfs.github.com.


크기가 100MB가 넘어가는 파일을 Commit하는 경우에 생기는 오류입니다. 웹 개발할 때는 자주 보이지 않지만 유니티 같은 게임 프로젝트에서는 hdr 같은 큰 파일을 다루기 때문에 종종 발생하고는 하는데요.


Git lfs(Git Large File Storage)를 이용해서 해결할 수 있습니다.


Git Large File Storage는 간단히 크기가 큰 파일을 따로 저장하기 위한 도구라고 이해하면 됩니다. 물론, 설정만 미리 해 놓으면 파일마다 일일이 Commit할 필요는 없습니다. 설정하는 방법을 설명해 드리겠습니다.


1. git lfs 설치

프로젝트 디렉토리에서 다음 명령어를 실행해 git lfs를 설치해 주세요.


git lfs install


2. git lfs로 관리할 파일을 지정

크기가 커서 git lfs에 따로 업로드해야 하는 파일을 다음 명령어를 통해 지정해 주세요.


git lfs track assets/db.sql


하지만, 유니티 프로젝트에 Git을 설정해 사용하고 있는 제 경우에는 유니티 패키지를 다운로드할 때마다 크기가 큰 파일이 왕창 들어오기 때문에 모든 파일을 일일이 지정해 주기는 어려웠습니다.


그래서 Assets 폴더에 Packages 폴더를 만든 다음 다운로드 받은 유니티 패키지 폴더를 모두 넣어 주고 Packages 폴더 내용물 전체를 git lfs로 관리하게끔 만들어 주었습니다.


git lfs track Assets/Packages/**/*


3. 커밋 .gitattributes

이렇게 두 단계를 거치면 git lfs로 관리할 파일 설정이 담긴 .gitattributes 파일이 자동으로 생성됩니다.


.gitattributes 파일을 커밋해 주세요.


git add .gitattributes
git commit -m "Track files"
git push origin main

이러면 설정이 끝났습니다. 이후에는 평소처럼 자유롭게 파일을 추가하고 푸쉬하면 되겠습니다.


git add .
git push origin main


그래도 안 된다면?

그래도 여전히 같은 에러가 뜨는 경우가 있는데, 아마 git lfs로 관리할 파일을 설정하기 전에 이미 해당 파일을 커밋한 경우일 겁니다.


이때 에러가 뜨는 이유도 어떻게 보면 당연합니다. 커밋한 내역을 레포지토리에 푸쉬하면 지난 커밋 내역도 함께 저장되는데요. 지난 커밋 내역에 큰 파일 데이터가 포함되어 있기 때문입니다. 지난 커밋이라고 해서 파일을 저장하기 위해 필요한 데이터가 줄어들지는 않는 셈이죠.


이 경우 git lfs로 관리하고자 하는 파일을 커밋하기 전까지 git 내역을 되돌려줍니다.


git reset --mixed HEAD^
댓글 0

프로그래밍 카테고리 다른 글