Dev Enabled의 YouTube Complete Guide to Git and Unreal for Beginners - UE4 / UE5 영상을 보며 참고했습니다.
요약
로컬에 Clone된 레포지토리 폴더에 내 프로젝트 폴더의 파일들을 복붙해주면 GitHub에 연동할 수 있다.
순서
- 언리얼 새 프로젝트파일 만들기 (기존 프로젝트로도 가능)
- GitHub에 프로젝트명으로 새 레포지토리 생성 (생성 시 .gitignore - UnrealEngine 선택)
- GitHub Desktop 프로그램으로 로컬 디렉토리 아무데나 레포지토리 Clone (GitHub Desktop 프로그램 없어도 Visual Studio로 로컬에 Clone 가능)
- 레포지토리 Clone된 디렉토리에 프로젝트 폴더안에 있는 파일들 전부 복붙
- Commit > Push > 끝
새 프로젝트 GitHub에 연동
① 프로젝트명과 동일한 이름으로 Git 레포지토리 생성
② Public / Private 상관없음 - 나중에 바꿀 수 있음
③ README.md 생성여부 선택 - 있어보이게 하고싶어서 생성함
④ .gitignore > UnrealEngine 선택 (언리얼 파일로 어차피 빌드하면서 생성될 용량 큰 파일들 git push하지 않게 설정)
⑤ 레포지토리 생성!
GitHub Desktop 프로그램을 통해 사용하면 여러모로 편하다!
① ~ ④ 레포지토리 HTTPS 주소로 로컬 디렉토리에 Clone
⑤ 디렉토리는 아무 폴더 TEMP 생성해서 넣어줌
⑥ Clone!
프로젝트 폴더의 파일들을 모두 Clone된 레포지토리 폴더 안으로 복사 붙여넣기!
Test Blueprint를 생성하고 저장하니 변동된 파일로 리스트업 되는걸 확인할 수 있다
커밋 > 푸쉬!
짜잔!
연동 확인하기
연동 확인을 위해 몇가지 더 추가해보기
플러그인을 활성화해 저장한 내용도 변동확인이 가능하다
TestMap으로 새 맵을 생성하고 Actor 3개를 뷰포트에 추가해 주고 저장한 내용도 TestMap.uasset 파일의 변동내용으로 리스트업 된다
변동사항 커밋 푸쉬 후 GitHub를 통해 파일을 내려받아 실행시켜보면,
작업내용 그대로 프로젝트 파일을 받을 수 있다!
기존 프로젝트 연동
- GitHub에 프로젝트명으로 새 레포지토리 생성 (생성 시 .gitignore - UnrealEngine 선택)
- GitHub Desktop 프로그램으로 로컬 디렉토리 아무데나 레포지토리 Clone (GitHub Desktop 프로그램 없어도 Visual Studio로 로컬에 Clone 가능)
- 레포지토리 Clone된 디렉토리에 프로젝트 폴더안에 있는 파일들 전부 복붙
- Commit > Push > 끝
똑같은 순서로 해주면 기존 프로젝트도 GitHub로 올릴 수 있다
382MB의 작업물을 한꺼번에 Git Push / 내려받아도 문제없음!
레포지토리 디렉토리 변경
레포지토리 폴더를 다른곳으로 이동시키면 디렉토리가 변경되기때문에 디렉토리 재설정을 해줘야 한다
GitLFS 사용
GitHub의 각종 크기 제한으로 인해 프로젝트를 푸시할 수 없는 상황이 생길 수 있다.
| 파일크기제한 | 리포지토리 크기제한 | 푸쉬크기제한 |
|---|---|---|
| 100MiB | 5GB | 2GB |
간혹 정교한 머터리얼 표현을 위한 Texture들이 고화질인 경우 제한을 초과할 수 있다.
이럴 땐 GitLFS를 활용해 대용량 파일을 원격 저장소(LFS)에 저장해 푸쉬할 수 있다.
상황에 따라 유료서비스를 결제해야 할 수 있기 때문에 가급적 큰 용량을 사용하는 에셋은 마지막 단계에 배치하고, 이전까지는 GitHub의 제한크기에 맞게 작업을 완성하는 것이 낫다
GitLFS 설치 및 적용
- Git LFS 설치하기
- 프로젝트 디렉토리에서 git bash를 실행한 뒤 LFS 작업 진행
git lfs install
- 프로젝트 디렉토리에서 git bash를 실행한 뒤 LFS 작업 진행
-
LFS에 저장할 파일유형 등록
- 프로젝트 디렉토리에 .gitattributes 파일을 만들기
git add .gitattributes - 파일유형 등록
git lfs track "*.uasset" - 직접 메모장으로 다수의 파일 유형을 입력해 추가할 수 있다.
# UE file types *.uasset filter=lfs diff=lfs merge=lfs -text *.umap filter=lfs diff=lfs merge=lfs -text # Raw Content types *.fbx filter=lfs diff=lfs merge=lfs -text *.3ds filter=lfs diff=lfs merge=lfs -text *.psd filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text *.mp3 filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text *.xcf filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text
- 프로젝트 디렉토리에 .gitattributes 파일을 만들기
- 커밋 후 푸쉬
GitLFS 비활성화
GitLFS 또한 1GB 저장소 제한이 있기 때문에 초과 시 푸쉬를 할 수 없게 된다.
github Settings > Billing and plan > Plans and usage를 통해 현재 GitLFS저장소 사용량을 확인 할 수 있고 1GB 초과 시 청구비용이 표시되어있다.
따라서 가급적 GitHub에서 수용가능한 크기의 에셋은 굳이 LFS에 넣지 않는 것이 장기간 작업에 효율적일 수 있다.
-
GitLFS 등록된 파일 조회
git lfs ls-files --all -
GitLFS 등록 해제
- 등록해제
git lfs untrack '*.uasset' - LFS저장소에서 파일 삭제
git rm --cached '*.uasset' - (LFS저장소에서 삭제된 파일 대신) 로컬 디렉토리의 파일 git에 추가
git add '*.uasset'
- 등록해제
- GitLFS Uninstall
- LFS 해제
git lfs uninstall - .gitattributes 파일 삭제
- LFS 해제
- 커밋 후 푸쉬