김포프님의 영상을 보던중 Perforce에 대해 알게되었다.
모든 게임은 리소스가 게임용량의 거의 전부를 차지하기 마련인데 이건 개발에서도 마찬가지다. 그래서 리소스를 버전관리에 넣고자 하면 부담이 되는 경우가 있다.
Perforce에 대해 알아보던중 언리얼 엔진 내부에서 소스 콘트롤을 통해 작동시킬 수 있다는 것을 알게 되었으나 구축에 있어 약간 어려움을 느껴 그나마 쪼오끔 알고있는 GitHub을 사용하기로 했고… 여기서부터 LFS에 대한 설명이다.
Git LFS란 무엇인가?
Git LFS에서 LFS는 Large File Storage를 뜻한다.
원래 Git은 Linux의 소스코드 관리를 위해 리누스 토르발즈가 개발한 소스관리 툴(VCS)이다. 리눅스 커널은 리소스라 할만한게 없기 때문에 코드가 중점적인 프로젝트라 그에 맞게 Git 자체도 바이너리로 구성된 리소스들을 담는 부분들은 크게 고려되지 않았던 것 같다. 그래서 크고 아름다운 리소스들이나 파일들을 Git으로 빠르게 관리하기 위해 Git LFS가 탄생했다.
Git LFS 연동
Git LFS는 콘솔로 구축도 가능하지만 나는 빠르고 간편한게 좋기때문에 SourceTree를 사용하기로 했다.
기본적으로 Git Repository를 만드는 부분은 다 알고 있으리라 생각하니 Git LFS로 컨텐츠를 트레킹 하는 방법만 설명하겠다.
SourceTree기준으로 Git LFS관련 부분은 저장소->Git LFS 섹션에 있다.

여기서 Git LFS 가 설정되어있지 않다면 저장소 초기화 버튼만 활성화가 되어있을 것이다 이것을 눌러주면 된다.

이런 팝업이 뜨면 Start Using Git LFS를 눌러준다.

Git LFS에서 추적할 파일 형식을 고르는 창이다. 나는 귀찮기 때문에 Content 폴더의 모든 걸 추적하도록 하겠다.

Content/*.* filter=lfs diff=lfs merge=lfs -text
Content/* 를 하던 Content/**를 하던 전부 작동한다.
그리고 .gitattributes 파일을 정상적으로 작성되면 그 후의 Push부터는 일반적인 파일과 구분되게 LFS Object를 먼저 검수한 뒤 Push하게 된다.
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks -c credential.helper= -c credential.helper="C:/Users/Administrator/AppData/Local/ATLASS~1/SOURCE~1/GIT_EX~1/GIT-CR~1.EXE" commit -q -F C:\Users\Administrator\AppData\Local\Temp\fgtntl5m.iaa
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks -c credential.helper= -c credential.helper="C:/Users/Administrator/AppData/Local/ATLASS~1/SOURCE~1/GIT_EX~1/GIT-CR~1.EXE" push -v --tags --set-upstream origin master:master
Pushing to https://github.com/bbagwang/TEST
Uploading LFS objects: 100% (395/395), 688 MB | 6.4 MB/s, done
POST git-receive-pack (75409 bytes)
Branch 'master' set up to track remote branch 'master' from 'origin'.
To https://github.com/bbagwang/TEST
b31a393..23513d9 master -> master
updating local tracking ref 'refs/remotes/origin/master'
성공적으로 완료되었습니다.
설명중 틀린 부분이 있을 수도 있으니 만약 안된다면 따로 더 찾아보시길 ㅎㅎ..ㅠ
추가적으로 GitHub으로 연동해 쓸 경우 Git LFS서버 사용료를 따로 내야하는데 DataPack 1개 기준 50GB를 한달동안 5$ 씩 내고 쓸 수 있으며 계정당 1GB 까지는 무료다.

ps. 내가 쓰는 gitignore와 gitattributes를 첨부한다. 아무나 도움이 되었으면 좋겠다.

GitHub 플랜 바뀐뒤에 PRO 구매자들한텐 뱃지를 나눠줬나보다 ㅋㅋㅋㅋ 홍프로가 된 기분이얌 >_<
*.* 사용 하시는 분 주의하시길 폴더 리커시브, 폴더 하위 전체 파일에는 적용 되지 않습니다.