본문 바로가기
유니티 공부/GitHub

GitHub - gitignore 사용해서 Unity 프로젝트 업로드 +) .meta 설명

by 코딩하는 돼징 2025. 4. 30.
반응형

.gitignore란?

Git은 기본적으로 폴더 내 모든 파일을 업로드하려고 한다. 하지만 그렇게 되면 용량이 너무 커져버린다. 그래서 버전 관리 대상 혹은 폴더를 지정해서 제외할 수 있는 설정 파일이다. 

간단히 말해 이건 Git에 올리지마!를 설정하는 것이다.


gitignore 문법 규칙

01 파일명 

특정 파일 무시

log.txt

log.txt라는 이름의 파일이 어디에 있던 무시된다.

02 폴더명/

해당 폴더와 내부 파일 모두 무시

Temp/

03 *. 확장자

특정 확장자 파일 전부 무시

*.log

04 경로 파일명/

특정 경로 내부 파일만 무시

build/output.txt

05 !파일명

무시 목록에서 예외로 지정

*.txt
!README.txt

README만 예외적으로 Git에 포함


Unity프로젝트는 업로드하면 백프로 100mb가 넘어가서 LMS를 사용하라고 나오면서 업로드를 하기 힘들다.

Unity의 기본 .gitignore를 사용할 수도 있다. 하지만 설정을 하여도 LMS를 사용하라는 팝업창이 떴다. 

 

왜 .gitignore를 사용하고도 100MB가 넘나요?

자동 생성 캐시 폴더는 잘 걸러내지만 Assets에 이미지, 영상 파일, 음원, fbx같은 경우 때문이다.

 

기본 Unity ignore에 아래 세 항목을 추가해줬더니 경고 창이 사라졌다.

*.png // 이미지
*.jpg // 이미지
*.meta // 메타파일(스크립트파일만 필요한 경우 보통은 추가하지 않음)
*.fbx // 모델 데이터
*.obj // 모델 데이터
*.mp4 // 영상
*.mov // 영상
*.wab // 음원
*.ogg // 음원

.meta파일이란?

Assets 폴더 내의 모든 파일과 폴더에 대해 자동으로 생성하는 정보 파일이다. 즉 에셋 하나당 .meta파일 하나가 생긴다. 

파일안에는 유니티가 해당 파일을 고유하게 식별하는 ID(GUID), 메타 파일 버전, 파일의 유형에 따라 추가 속성이 붙는다.

fileFormatVersion: 2
guid: a1b2c3d4e5f67890123456789abcdef0
MonoImporter:
  executionOrder: 0
  ...

Unity는 파일 경로가 아니라 .meta파일 속 GUID를 기준으로 에셋을 참조한다. 

예를 들어 Enemy Prefab이 Enemy.cs 스크립트를 참조하고 있다면 Unity는 Assets/Scripts/Enemy.cs의 경로를 기억하는게 아니라 Enemy.cs.meta에 들어가 있는 GUID를 기억한다.

즉 이 구조 덕분에 파일 위치를 옮기거나 이름을 바꿔도 참조가 유지된다. 


gitignore 코드 전문

 

# Unity 기본 무시 항목
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Mm]emoryCaptures/
*.csproj
*.sln
*.user
*.pidb
*.unityproj
*.booproj
*.svd
*.pdb
*.mdb
*.png
*.asset
*.fbx
*.meta

# 무시 항목 추가
*.png
*.jpg 
*.meta 
*.fbx 
*.obj 
*.mp4 
*.mov
*.wab 
*.ogg

# Unity 필수 설정 포함
!ProjectSettings/
!ProjectSettings/**
!Packages/
!Packages/**
반응형

댓글