Programing

버전 제어에서 폴더 메타 파일 무시

lottogame 2020. 12. 26. 09:27
반응형

버전 제어에서 폴더 메타 파일 무시


Unity 는 Asset 폴더 내의 폴더에 대한 메타 파일을 생성하고 삭제 합니다.

이는 버전 제어를 사용할 때 성가신 상황을 만들 수 있습니다 (건너 뛰고 질문으로 이동할 수 있음). 누군가는 무시할 파일 폴더를 생성하지만 폴더의 메타 파일을 무시하는 것을 잊어 버립니다. Unity는 메타 파일을 생성하고이 사람은 메타를 버전 관리에 추가합니다. 또 다른 사람은 폴더를 가지고 있지 않기 때문에, 변경 집합을 얻고 자신의 유니티 메타 파일을 삭제하고 버전 제어에서 메타 파일을 제거합니다. 팀의 모든 사람이 이것을 이해하는 것은 아니기 때문에 그 과정은 지옥에서 계속됩니다.

놀랍게도 이것은 항상 발생합니다. 따라서 두 가지 질문이 있습니다.

  1. 폴더 메타 파일의 버전이 중요합니까?
  2. 특히 git 또는 mercurial에서 폴더 메타 파일을 자동으로 무시하는 방법이 있습니까?

유니티 문서는 말한다 :

새 자산을 만들 때 자산 자체와 관련 .meta 파일이 버전 제어에 추가되었는지 확인하십시오.

나에게 이것은 버전 관리하에 둘 충분한 이유입니다. 문제를 해결하기위한 두 가지 접근 방식이 있습니다.

  • 조직 : "_"로 시작하는 것과 같은 로컬 폴더에 대한 명명 규칙을 설정합니다. 그러나 우리 모두는 이것이 작동하지 않을 것이라는 것을 알고 있습니다 ;-)
  • 모든 시스템에 클라이언트 측 사전 커밋 후크설치합니다 . 나는 이것을 아직하지 않았지만 유망 해 보인다.

방금 다른 git 명령으로 놀았는데 다음이 유용 할 수 있습니다. git hook 스크립트는 먼저 .gitignore가 변경되었는지 확인합니다.

git diff-index --cached --name-only HEAD | grep ".gitignore"

Assets 폴더에있는 경우 .gitignore에 새로 추가 된 모든 행의 디렉토리 이름을 인쇄합니다.

git diff --cached --word-diff=plain .gitignore | grep -o -e "{+\/.*\/Assets\/.*+}" | cut -d + -f 2

최신 정보

방금 그런 사전 커밋 후크를 작성했습니다 :-) 코드에 대한 GitHub 저장소 git-pre-commit-hook-unity-assets자세한 내용은 블로그 게시물 을 참조하십시오.


이것을 .gitignore에 추가하십시오.

#Ignore all .meta file
*.meta
#But not source file with postfix. which is everything but a folder
!*.*.meta

접미사가없는 파일은 무시됩니다. 그러나 그것은 아프지 않아야합니다.


자산과 함께 메타 파일을 포함하려면 제외 항목 뒤에 다음을 추가하면됩니다.

!*.*.meta

다음은 내 .gitignore의 샘플입니다.

# Ignore the following files
# --------------------------
# Unity3D specific
#
**/Library/*
**/Temp/*
**/*.csproj
**/*.unityproj
**/*.sln
**/*.userprefs
**/*.pidb

# include meta files
!*.*.meta

나는 이것을 git 저장소 구조가있는 폴더에 배치하므로 내 프로젝트 구조는 다음과 유사합니다.

root folder /
   - Unity Project/
        - .gitignore
        - .git/
        - ProjectFolder/
              - {all project related data}

도움이 되길 바랍니다.

참조 URL : https://stackoverflow.com/questions/19151247/ignoring-folder-meta-files-on-version-control

반응형