유니티 프로젝트를 Git과 함께 사용하기

유니티 프로젝트를 Git과 함께 사용하기

  1. 유니티 프로젝트를 Git과 함께 사용하기
    1. 들어가며
    2. GitIgnore 설정
    3. 유니티 프로젝트 설정
    4. 바이너리 파일들 관리하기
      1. 그냥 쓰는 방법
      2. Git-LFS를 기본 경로로 설정해 사용하기
        1. 장점
        2. 단점
      3. Git-LFS를 별도 경로로 설정해 사용하기
      4. Git 저장소 자체를 셀프 호스팅하기
      5. .gitignore를 적극적으로 사용하기
    5. 추가: 유니티가 생성한 파일들을 제대로 병합하기

등을 참고하여 작성되었습니다.

들어가며

유니티 프로젝트는 git과 같이 사용하기에 몇 가지 문제가 있습니다.

따라서 git을 이용해 유니티 프로젝트를 관리하려면 몇 가지 전처리 과정이 필요합니다.

  1. 유니티 및 다른 소프트웨어에 맞는 .gitignore 설정
  2. 유니티를 VCS에 맞게 설정하기
  3. 바이너리 파일들을 적절하게 관리하기

프로젝트가 생성되었다는 전제 아래, 하나씩 살펴보겠습니다.

GitIgnore 설정

GitIgnore은 git이 특정 파일들을 관리하지 않도록 정의하는 텍스트 파일로, git 레포지토리의 최상단에 놓으면 됩니다. 유니티의 .gitignore를 기반으로 해서, 운영체제에 맞는 (windows등) gitignore 파일, IDE를 위한 gitignore 파일 등을 추가하면 됩니다.

잘 모르겠으면 이 파일을 사용하면 됩니다. 이름을 .gitignore로 바꿔서 유니티 프로젝트의 맨 위 경로에 넣어주세요.

이 파일을 이용해, 다음과 같은 파일과 폴더들이 버전 컨트롤에 잡히는 것을 막을 수 있습니다.

유니티 프로젝트 설정

최신 유니티 엔진에서는 기본으로 설정되어 있으므로 굳이 건드릴 필요는 없지만, 방법을 알아두는 것은 유용합니다.

  1. 상단의 메뉴바에서 Edit > Project Settings를 선택하고, 열린 창의 사이드바에서 Editor를 선택합니다.

  2. 다음과 같이 설정합니다.

    Version Control / Mode: “Visible Meta Files” Asset Serialization / Mode: “Force Text”

  3. 프로젝트를 저장합니다.

바이너리 파일들 관리하기

이제 git 레포지토리를 활성화하고(git init) 커밋을 할 준비가 되었습니다. gitignore 파일이 불필요한 파일들을 인식하는 것을 막아주기 때문입니다.

하지만 git은 바이너리 파일과 궁합이 좋지 않습니다. 특히 4K 텍스처나 10분짜리 BGM, 동영상 같은 대형 바이너리 파일들을 git으로 관리하려 하면, 프로그램 실행 속도가 매우 느려집니다. 그리고 변경점을 관리한다는 버전 관리 체계의 장점도 사라지게 됩니다. GitHub의 경우 100MB 이상 파일은 업로드할 수도 없습니다.

일단 불필요한 파일들은 .gitignore를 이용해 git에 올리지 않는 것이 제일입니다. 하지만 무조건 그렇게 할 수는 없으니, 몇 가지 해결 방법들을 정리해봤습니다.

그냥 쓰는 방법

만약 프로젝트가 작고 이미지 파일도 별로 쓰지 않는다면, 의외로 방법이 될 수 있습니다. 파일 용량이 100MB를 넘기지 않고, 속도 저하 등을 감수할 용의가 있다면 방법이 됩니다.

Git-LFS를 기본 경로로 설정해 사용하기

Git-LFS는 git 체계를 이용해 대용량 파일을 관리하는 방법을 제공합니다. git-lfs를 설정하면, git이 대용량 파일을 직접 관리하는 대신 파일 자체는 별도의 저장소에 저장하고, git은 일종의 꼬리표만 가지고 있게 됩니다.

GitHub 기준으로, 이 링크 등을 참고해주세요.

git-lfs는 .gitattributes 파일을 이용해 어떤 파일을 git-lfs로 관리할지 결정합니다. 이 링크의 .gitattributes 파일을 이용하면 됩니다.

장점

단점

Git-LFS를 별도 경로로 설정해 사용하기

git-lfs는 저장소와 별도 경로로 설정이 가능합니다.

git config lfs.url https://github.com/foo/bar.git/info/lfs 같은 식으로 lfs 서버만 직접 호스팅을 해서 이용할 수 있습니다.

Git-lfs Impementations 를 참조하세요.

Git 저장소 자체를 셀프 호스팅하기

그런데 git-lfs 저장소를 셀프 호스팅할 수 있다면, 그냥 git 원격 저장소를 셀프 호스팅하면 어떨까요? GiteaSelf hosted Gitlab 같은 오픈 소스 저장소를 호스팅하면 굳이 lfs 서버만 따로 이용할 필요가 없어집니다.

.gitignore를 적극적으로 사용하기

아니면, 아예 바이너리 에셋을 git에서 관리하지 않는 방법도 있습니다.

이렇게 하면 git-lfs를 쓸 필요가 없어지지만, 대신 버전 관리를 별도로 해 줘야 한다는 단점이 있습니다.

추가: 유니티가 생성한 파일들을 제대로 병합하기

유니티 씬 파일이나 프리팹 파일 등은 일반적인 방법으로는 잘 병합되지 않습니다. 이 링크의 방법을 이용하면 Github 등의 웹 인터페이스에서 diff가 화면을 가리는 일을 막을 수 있습니다. 또한 유니티의 스마트 병합 기능을 이용하면 씬과 프리팹 파일을 조금 더 잘 병합할 수 있습니다. 설정 방법은 유니티 매뉴얼 및 이 링크를 참조하세요.

(사실 한 씬은 한 번에 한 명만 건드리는 것이 가장 좋습니다.)

*****
긍정적인 영향을 주는 사람이 됩시다
Served using home raspberry pi 3 B+
☕ Pudhina theme by Knhash 🛠️