unity3d
Unity와 함께 Git 소스 컨트롤 사용하기
수색…
Unity와 함께 Git Large File Storage (LFS) 사용하기
머리말
Git은 비디오 게임 개발을 즉시 사용할 수 있습니다. 그러나 주된주의 사항은 커밋 히스토리가 커짐에 따라 큰 (> 5 MB) 버전의 미디어 파일을 버전 관리하는 것이 문제가 될 수 있다는 것입니다. Git은 원래 바이너리 파일 버전 관리를 위해 제작되지 않았습니다.
좋은 소식은 2015 년 중반부터 GitHub이 Git LFS 라는 플러그인을 출시하여이 문제를 직접 처리한다는 것입니다. 이제 쉽고 효율적으로 대형 바이너리 파일을 버전화할 수 있습니다!
마지막으로,이 문서는 Git의 삶이 비디오 게임 개발에 잘 작동하도록하기 위해 필요한 특정 요구 사항과 정보에 중점을 둡니다. 이 가이드에서는 Git 자체를 사용하는 방법에 대해서는 다루지 않습니다.
Git & Git-LFS 설치하기
개발자는 여러 가지 옵션을 사용할 수 있습니다. 첫 번째 방법은 핵심 Git 명령 줄을 설치할지 또는 널리 사용되는 Git GUI 응용 프로그램을 사용할지 결정하는 것입니다.
옵션 1 : Git GUI 응용 프로그램 사용
Git GUI 나 GUI 사용 여부에 대한 몇 가지 옵션이 있기 때문에 이것은 실제로 개인적인 취향입니다. 선택할 수있는 응용 프로그램이 많습니다. 인기있는 응용 프로그램은 다음과 같습니다.
선택한 응용 프로그램을 설치했으면 google을 실행하고 Git-LFS에 대한 설정 방법을 확인하십시오. 이 안내서의이 단계는 응용 프로그램에 따라 다르므로 생략하겠습니다.
옵션 2 : Git & Git-LFS 설치
이것은 매우 간단합니다 - Install Git . 그때. Git LFS를 설치하십시오 .
프로젝트에 큰 파일 저장 공간 구성
Git LFS 플러그인을 사용하여 이진 파일을 더 잘 지원한다면 Git LFS에서 관리 할 파일 유형을 설정해야합니다. Unity 프로젝트에서 사용되는 일반적인 바이너리 파일을 지원하기 위해 저장소의 루트에있는 .gitattributes
파일에 아래를 추가하십시오 :
# Image formats:
*.tga filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
# Audio formats:
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.aiff filter=lfs diff=lfs merge=lfs -text
# 3D model formats:
*.fbx filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
# Unity formats:
*.sbsar filter=lfs diff=lfs merge=lfs -text
*.unity filter=lfs diff=lfs merge=lfs -text
# Other binary formats
*.dll filter=lfs diff=lfs merge=lfs -text
Unity를위한 Git 저장소 설정하기
Unity 개발을 위해 Git 저장소를 초기화 할 때 수행해야 할 몇 가지 작업이 있습니다.
Unity는 폴더를 무시합니다.
저장소의 모든 버전을 버전 관리해야하는 것은 아닙니다. 아래 템플릿을 저장소의 루트에있는 .gitignore
파일에 추가 할 수 있습니다. 또는 GitHub 에서 오픈 소스 Unity.gitignore를 확인하고 gitignore.io를 사용하여 하나를 생성 할 수도 있습니다 .
# Unity Generated
[Tt]emp/
[Ll]ibrary/
[Oo]bj/
# Unity3D Generated File On Crash Reports
sysinfo.txt
# Visual Studio / MonoDevelop Generated
ExportedObj/
obj/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
# OS Generated
desktop.ini
.DS_Store
.DS_Store?
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.gitignore 파일을 설정하는 방법에 대해 자세히 알아 보려면 여기를 확인하십시오 .
Unity 프로젝트 설정
기본적으로 Unity 프로젝트는 버전 관리를 올바르게 지원하도록 설정되지 않습니다.
- (v4.5 이상에서이 단계 생략)
Unity → Preferences → Packages → Repository
에서External
옵션을 활성화하십시오. -
Edit → Project Settings → Editor → Version Control Mode
에서Visible Meta Files
로 전환Edit → Project Settings → Editor → Version Control Mode
. -
Edit → Project Settings → Editor → Asset Serialization Mode
에서Force Text
로 전환Edit → Project Settings → Editor → Asset Serialization Mode
. -
File
메뉴에서 장면과 프로젝트를 저장하십시오.
추가 구성
Git을 Unity 프로젝트와 함께 사용하는 몇 가지 주요한 성가심 중 하나는 Git이 디렉토리를 신경 쓰지 않고 파일을 삭제 한 후 빈 디렉토리를 행복하게 남겨 둘 것입니다. Unity는 이러한 디렉토리에 *.meta
파일을 만들 것이며, Git이 이러한 메타 파일을 계속 추가하고 제거하면 팀 구성원간에 약간의 전투가 발생할 수 있습니다.
이 Git post-merge 훅 을 Unity 프로젝트가있는 리포지토리의 /.git/hooks/
폴더에 추가하십시오 . Git 풀 / 병합 후에 어떤 파일이 제거되었는지 확인하고, 존재하는 디렉토리가 비어 있는지 확인한 다음 삭제하십시오.
병합되는 장면과 프리 팹
Unity로 작업 할 때 공통적 인 문제는 2 명 이상의 개발자가 Unity Scene 또는 프리 패브 (* .unity 파일)를 수정하는 경우입니다. 힘내라는 상자에서 제대로 병합하는 법을 모른다. 고맙게도 Unity 팀은 간단한 병합을 자동으로 만드는 SmartMerge 라는 도구를 배포했습니다. 가장 먼저해야 할 일은 .git
또는 .gitconfig
파일에 다음 행을 추가하는 것입니다 (Windows : %USERPROFILE%\.gitconfig
, Linux / Mac OS X : ~/.gitconfig
).
[merge]
tool = unityyamlmerge
[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = '<path to UnityYAMLMerge>' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
Windows 에서 UnityYAMLMerge의 경로는 다음과 같습니다.
C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe
또는
C:\Program Files (x86)\Unity\Editor\Data\Tools\UnityYAMLMerge.exe
그리고 MacOSX에서 :
/Applications/Unity/Unity.app/Contents/Tools/UnityYAMLMerge
이 작업이 완료되면 병합 / 리베이스 중에 충돌이 발생할 때 사용할 수 있습니다. git mergetool
수동으로 실행하여 UnityYAMLMerge를 트리거하는 것을 잊지 마십시오.