UE 프로젝트 GitHub에 연동하기


Tags :


Dev Enabled의 YouTube Complete Guide to Git and Unreal for Beginners - UE4 / UE5 영상을 보며 참고했습니다.

요약

로컬에 Clone된 레포지토리 폴더에 내 프로젝트 폴더의 파일들을 복붙해주면 GitHub에 연동할 수 있다.
순서

  1. 언리얼 새 프로젝트파일 만들기 (기존 프로젝트로도 가능)
  2. GitHub에 프로젝트명으로 새 레포지토리 생성 (생성 시 .gitignore - UnrealEngine 선택)
  3. GitHub Desktop 프로그램으로 로컬 디렉토리 아무데나 레포지토리 Clone (GitHub Desktop 프로그램 없어도 Visual Studio로 로컬에 Clone 가능)
  4. 레포지토리 Clone된 디렉토리에 프로젝트 폴더안에 있는 파일들 전부 복붙
  5. Commit > Push > 끝

새 프로젝트 GitHub에 연동

01 02 ① 프로젝트명과 동일한 이름으로 Git 레포지토리 생성
② Public / Private 상관없음 - 나중에 바꿀 수 있음
③ README.md 생성여부 선택 - 있어보이게 하고싶어서 생성함
④ .gitignore > UnrealEngine 선택 (언리얼 파일로 어차피 빌드하면서 생성될 용량 큰 파일들 git push하지 않게 설정)
⑤ 레포지토리 생성!

GitHub Desktop 프로그램을 통해 사용하면 여러모로 편하다!
03 ① ~ ④ 레포지토리 HTTPS 주소로 로컬 디렉토리에 Clone
⑤ 디렉토리는 아무 폴더 TEMP 생성해서 넣어줌
⑥ Clone!

04 프로젝트 폴더의 파일들을 모두 Clone된 레포지토리 폴더 안으로 복사 붙여넣기! 05 Test Blueprint를 생성하고 저장하니 변동된 파일로 리스트업 되는걸 확인할 수 있다

06 커밋 > 푸쉬! 07 짜잔!

연동 확인하기

연동 확인을 위해 몇가지 더 추가해보기

08 플러그인을 활성화해 저장한 내용도 변동확인이 가능하다 09 TestMap으로 새 맵을 생성하고 Actor 3개를 뷰포트에 추가해 주고 저장한 내용도 TestMap.uasset 파일의 변동내용으로 리스트업 된다
변동사항 커밋 푸쉬 후 GitHub를 통해 파일을 내려받아 실행시켜보면, 10 작업내용 그대로 프로젝트 파일을 받을 수 있다!

기존 프로젝트 연동

  1. GitHub에 프로젝트명으로 새 레포지토리 생성 (생성 시 .gitignore - UnrealEngine 선택)
  2. GitHub Desktop 프로그램으로 로컬 디렉토리 아무데나 레포지토리 Clone (GitHub Desktop 프로그램 없어도 Visual Studio로 로컬에 Clone 가능)
  3. 레포지토리 Clone된 디렉토리에 프로젝트 폴더안에 있는 파일들 전부 복붙
  4. Commit > Push > 끝

똑같은 순서로 해주면 기존 프로젝트도 GitHub로 올릴 수 있다 12 382MB의 작업물을 한꺼번에 Git Push / 내려받아도 문제없음! 13

레포지토리 디렉토리 변경

레포지토리 폴더를 다른곳으로 이동시키면 디렉토리가 변경되기때문에 디렉토리 재설정을 해줘야 한다 11

GitLFS 사용

GitHub의 각종 크기 제한으로 인해 프로젝트를 푸시할 수 없는 상황이 생길 수 있다.

파일크기제한 리포지토리 크기제한 푸쉬크기제한
100MiB 5GB 2GB

간혹 정교한 머터리얼 표현을 위한 Texture들이 고화질인 경우 제한을 초과할 수 있다.
이럴 땐 GitLFS를 활용해 대용량 파일을 원격 저장소(LFS)에 저장해 푸쉬할 수 있다.

상황에 따라 유료서비스를 결제해야 할 수 있기 때문에 가급적 큰 용량을 사용하는 에셋은 마지막 단계에 배치하고, 이전까지는 GitHub의 제한크기에 맞게 작업을 완성하는 것이 낫다

GitLFS 설치 및 적용

  • Git LFS 설치하기
    1. 프로젝트 디렉토리에서 git bash를 실행한 뒤 LFS 작업 진행
        git lfs install
      
  • LFS에 저장할 파일유형 등록

    1. 프로젝트 디렉토리에 .gitattributes 파일을 만들기
        git add .gitattributes
      
    2. 파일유형 등록
        git lfs track "*.uasset"
      
    3. 직접 메모장으로 다수의 파일 유형을 입력해 추가할 수 있다.
        # 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
      
  • 커밋 후 푸쉬

GitLFS 비활성화

GitLFS 또한 1GB 저장소 제한이 있기 때문에 초과 시 푸쉬를 할 수 없게 된다.

github Settings > Billing and plan > Plans and usage를 통해 현재 GitLFS저장소 사용량을 확인 할 수 있고 1GB 초과 시 청구비용이 표시되어있다.

image

따라서 가급적 GitHub에서 수용가능한 크기의 에셋은 굳이 LFS에 넣지 않는 것이 장기간 작업에 효율적일 수 있다.

  • GitLFS 등록된 파일 조회

      git lfs ls-files --all
    
  • GitLFS 등록 해제

    1. 등록해제
        git lfs untrack '*.uasset'
      
    2. LFS저장소에서 파일 삭제
        git rm --cached '*.uasset'
      
    3. (LFS저장소에서 삭제된 파일 대신) 로컬 디렉토리의 파일 git에 추가
        git add '*.uasset'
      
  • GitLFS Uninstall
    1. LFS 해제
        git lfs uninstall
      
    2. .gitattributes 파일 삭제
  • 커밋 후 푸쉬