Unity 프로젝트를 Git LFS로 버전 관리하는 개인 추천 설정

소개



최근에 당사에서의 버전 관리가 GitHub에서 관리하게 되었으므로, 그 때 Unity 프로젝트를 버전 관리에 필수 불가결한 Git LFS의 개인적인 추천 설정을 소개하고 싶습니다.

Git LFS란?



상당히 Unity 프로젝트를 GitLFS로 관리한 기사 등 올리고 있는 분이 있었으므로 여기에서는 링크처의 소개
htps : // 코 m/마사코는/있어 ms/96d11730d06695470944
htps //w w. s에서 멋지다. 네 t / 카메라 25 / 우니 ty-gi tlfs
ht tp // ch. 굉장히 pc. 코m/엔트리/2017/07/14/031046
h tp // q7…하테나 bぉg. 코m/엔트리/2016/12/10/000222

사용 클라이언트 소프트웨어



단연 Sourcetree 일택일까 보기 쉬운 것과 여러가지 설정할 수 있는 점인가라고 그 이외에 Github for Unity 있습니다만, 디자이너씨나 플래너씨라든가가 사용하는 것은 좋을 것 같을지도 여분의 항목이 없기 때문에

Unity 프로젝트 설정



편집 > ProjectSettings > Editor 선택

· VersionControl의 Mode를 VisibleMetaFiles를 선택
이것으로 .Meta 파일을 생성하도록 한다 Meta 파일은 폴더처의 정보나 화상 데이터의 ImportSettings등의 정보가 저장되어 있으므로, Meta 파일을 공유하지 않으면 다른 사람에게 영향이 나온다


· AssetSerialization 모드를 ForceText로 설정
이렇게하지 않으면 .Asset 파일 (예 : ProjectSettings의 데이터)의 내용이 텍스트 파일이되지 않으므로 차이를 볼 수 없게됩니다 반드시이 설정으로 유지합시다.


.gitignore(무시 파일) 설정



대개 세상 일반적으로 Unity 프로젝트를 Git로 관리할 때의 무시 파일에 추가로, 개인 사용의 Asset만 무시하는 구성으로 되어 있습니다

.gitignore
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
# 個人使用のAssetのもの
/Assets/AssetStoreTools*
/Assets/Snapcam/Scripts/Editor/Editor Default Resources/SceneSnaps*
/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources*
/Assets/PygmyMonkey*
/Assets/HierarchyPlus*
/Assets/Plugins/Editor/JetBrains*
/.idea*

# Autogenerated VS/MD solution and project files
ExportedObj/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd

# Unity3D generated meta files
*.pidb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk

.gitattributes (Git LFS 추적 대상 목록) 설정



구성적으로는 대개 데이터가 커질 것 같은 확장자를 대상으로 하고, 차분이 보고 싶은 확장자는 제외하고 있습니다(LFS 대상이 된 파일은 바이너리 데이터가 되어 버리므로)
여기서 포인트입니다만, LightingData.asset는 반드시 설정합시다
이것만 직접 파일명으로 명기하고 있습니다만, 프로젝트내의 모든 파일명이 적용되는 파일은 추적 대상이 됩니다.
이것을 설정하지 않으면 LightingData는 상당히 데이터가 커지기 쉽기 때문에 리포지토리에 올리지 못할 가능성이 있는 또 다른 문제가 나옵니다.
이대로 공유하면 다른 사람의 프로젝트의 LightingData가 깨진 상태에서 공유됩니다.
이게 뭐야?
실제 LightingData를 살펴보겠습니다.
이와 같이 LightingData가 LFS 대상외에서 이외의 LightingData의 화상 데이터가 LFS 대상이 되어 있기 때문에 망가져 버렸습니다. 따라서 두 데이터 모두 LFS 대상 외부 또는 LFS 대상이어야 합니다.


그 밖에는, 경고된 파일이 있으면 직접 파일명을 추가해 경고를 제거한다
덧붙여서 .asset 확장자를 지정하지 않은 이유는 .gitignore (무시 파일) 설정으로 작성되었습니다.

.gitattributes
## Unity ##
*.cs diff=csharp text
*.cginc text
*.shader text
*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf

## git-lfs ##
#Image
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
*.iff filter=lfs diff=lfs merge=lfs -text
*.pict filter=lfs diff=lfs merge=lfs -text

#Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.aiff filter=lfs diff=lfs merge=lfs -text
*.mod filter=lfs diff=lfs merge=lfs -text
*.it filter=lfs diff=lfs merge=lfs -text
*.s3m filter=lfs diff=lfs merge=lfs -text
*.xm filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text

#Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.avi filter=lfs diff=lfs merge=lfs -text
*.mpg filter=lfs diff=lfs merge=lfs -text
*.mpeg filter=lfs diff=lfs merge=lfs -text
*.asf filter=lfs diff=lfs merge=lfs -text

#3D Object
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.dxf filter=lfs diff=lfs merge=lfs -text
*.max filter=lfs diff=lfs merge=lfs -text
*.ma filter=lfs diff=lfs merge=lfs -text
*.mb filter=lfs diff=lfs merge=lfs -text

#font
*.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text

# Android
*.a filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text

# library
*.dll filter=lfs diff=lfs merge=lfs -text

#ETC
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.lzh filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text

#
*.spm filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.apk filter=lfs diff=lfs merge=lfs -text

LightingData.asset filter=lfs diff=lfs merge=lfs -text


Git LFS를 사용하여 본 인상



솔직히 프로젝트 시작 설정에서 나중에 귀찮음에 영향을 줄 것이라고 생각했습니다.
그러므로 가능한 한 먼저 대략 설정을 해 둡시다.
그리고, 과연 LFS 대응하고 있어도 몇 G 바이트를 넘는 데이터의 공유에는 무리 있다고 생각합니다
예를 들어 동영상 파일을 공유할 때 가끔 공유할 수 없을 때가 있거나 unity cloud build를 할 수 없었습니다.

좋은 웹페이지 즐겨찾기