Unity 프로젝트를 Git으로 관리

12044 단어 Unity3DUnity2DGitUnity

전제


  • Bitbucket 사용
  • SourceTree 사용

  • 1. Unity 프로젝트 생성 및 초기 설정



    적절한 위치에 Unity 프로젝트를 만들고 Unity Editor에서 엽니다.
    Edit > Project Settings > Editor를 선택하고 다음 항목을 설정하고 저장합니다.


  • Version Control - Mode : Visible Meta Files
    meta 파일은 Asset 폴더 내의 모든 자산에 대해 Unity에서 필요한 관리 정보가 기재된 파일로, meta 파일을 표시시킴으로써 Unity 외부의 버전 관리 시스템을 유효화한다.
  • Asset Serialization : Force Text
    모든 에셋을 텍스트 형식으로 변환하여 Scene이나 Prefab 등의 바이너리 형식의 파일을 텍스트로 볼 수 있으므로 버전 관리하기 쉬워진다.

  • 2. Unity 프로젝트에서 로컬 리포지토리 생성



    초기 설정이 완료된 Unity 프로젝트에서 로컬 리포지토리를 생성합니다.
    이 때 리모트 리포지토리는 작성하지 않는다.



    변경 파일이 800 이상 있습니다 ...?



    3. 무시 목록 설정



    800 이상 있는 파일 중 버전 관리가 필요한 것은 이하 디렉토리 부하의 파일만.
  • Assets
  • ProjectSettings
  • UnityPackageManager

  • 그 이외는 gitignore로 설정해 관리 대상외로 한다.
    GitHub에는 템플릿이 있기 때문에 빌림.

    Unity.gitignore
    $ curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore
    

    내용은 이런 느낌
    $ cat .gitignore
    [Ll]ibrary/
    [Tt]emp/
    [Oo]bj/
    [Bb]uild/
    [Bb]uilds/
    Assets/AssetStoreTools*
    
    # Visual Studio cache directory
    .vs/
    
    # Autogenerated VS/MD/Consulo solution and project files
    ExportedObj/
    .consulo/
    *.csproj
    *.unityproj
    *.sln
    *.suo
    *.tmp
    *.user
    *.userprefs
    *.pidb
    *.booproj
    *.svd
    *.pdb
    *.opendb
    
    # Unity3D generated meta files
    *.pidb.meta
    *.pdb.meta
    
    # Unity3D Generated File On Crash Reports
    sysinfo.txt
    
    # Builds
    *.apk
    *.unitypackage
    

    상당히 줄어든



    4. Git LFS 트랙 대상 파일 설정



    이미지나 음성 파일 등의 바이너리 데이터는 파일 사이즈가 커지기 쉽기 때문에 Git LFS 트랙 대상으로 한다.
    또 또 이하를 배차.

    .gitattributes for Unity3D with git-lfs
    $ curl -o .gitattributes https://gist.githubusercontent.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f/raw/15f60a55a50b5c058de5e14369051ed268db0c77/.gitattributes
    

    내용은 이런 느낌
    $ cat .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
    *.prefab 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
    
    #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
    
    #Video
    *.mp4 filter=lfs diff=lfs merge=lfs -text
    *.mov 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
    
    #ETC
    *.a filter=lfs diff=lfs merge=lfs -text
    *.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
    *.dll filter=lfs diff=lfs merge=lfs -text
    *.unitypackage filter=lfs diff=lfs merge=lfs -text
    *.aif filter=lfs diff=lfs merge=lfs -text
    *.ttf 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
    

    그런 다음 적절한 이미지를 넣고 커밋하고 원격 리포지토리를 만들고 push
    Bitbucket 측 설정에서 Git LFS에 push 한 파일이 표시되면 OK



    좋은 웹페이지 즐겨찾기