.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/**
'유니티 공부 > GitHub' 카테고리의 다른 글
GitHub - Slack에 GitHub 커밋 알림 연동하는 방법 (Feat. subscribe 명령어) (0) | 2025.05.09 |
---|---|
GitHub - .vsidx파일 때문에 git commit 안되는 경우 (0) | 2025.05.01 |
GitHub - 현재 작업중인 브랜치에 다른 브랜치 최신 내용 반영 방법 (0) | 2025.04.22 |
GitHub - 최근 커밋 수정하기 (amend 사용) (0) | 2024.04.04 |
GitHub - The file will have its original line endings in your working directory (0) | 2024.03.18 |
댓글