Git의 Unity 빈 폴더 처리

vvhustle's coding note·2022년 11월 22일
0

비어 있는 폴더는 Git 관리 대상에서 제외 됩니다.

폴더만 만들거나 폴더 안에 파일을 모두 삭제한 상태로 커밋할 경우 폴더는 없어진것으로 간주합니다.

Pull 받는 다른 유저는 삭제된것으로 인식하고 폴더를 삭제 하지만 커밋한 유저의 환경에는 여전히 폴더가 존재합니다.

Unity File 관리 시스템
Unity에서는 Folder/File에 모두 .meta 파일을 추가해서 관리합니다.

(숨김 속성을 가지고 있는 Folder나 File은 관리 대상에서 제외합니다.)

두가지 시스템의 특징으로 발생하는 문제점
빈 폴더를 생성되면 Unity 시스템에서 빈 폴더를 위한 .meta 파일을 생성합니다.

(Empty Folder를 만들자 Empty Folder.meta 파일도 덤으로 생성되었습니다.)

하지만 Git 시스템에서는 빈 폴더는 인식하지 못하고 .meta 파일만 추가된것으로 보여줍니다.

이 상태에서 .meta 파일만 Push 하게 될 경우 다른 유저의 Unity 환경에서는 .meta 파일에 대한 원본이 없기 때문에 .meta 파일을 삭제합니다.

이 두가지 특징으로 인해 발생한 문제점으로 불필요한 커밋 리스트가 지속적으로 발생하게 됩니다.

폴더가 존재하는 유저는 계속해서 .meta 파일을 생성해서 커밋하고, 폴더를 내려받지 못한 유저는 계속해서 .meta 파일을 삭제해서 커밋하게 됩니다.

실수로 인해 이런 상황이 자주 발생할 수 있으니 이런 상황이 지속적으로 발생된다면 빈 폴더에 대한 처리를 깔끔하게 처리하고 가는 것이 좋습니다.

혹은 꼭 유지해야 하는 폴더의 경우에는 숨김 파일을 추가함으로써 이러한 문제를 방지할 수 있습니다.

숨김 파일 생성해서 빈 폴더(?)를 Git에 올리기
Project Window 에서 빈 폴더를 선택하고 Assets - Create - Keep File in Empty Folder 메뉴를 실행합니다.

실행 후 별 변화를 느낄 수 없지만 정상적으로 실행이 되었다면 다음과 같은 것들을 확인할 수 있습니다.

더 이상 빈 폴더가 아니기 때문에 숨김 파일을 만드는 메뉴가 비활성화 되었습니다.

Show in Explorer 로 폴더 내부를 확인해보면 .keep 파일이 생성된것을 확인할수 있습니다.

이제 폴더에 대한 관리를 Git에서 지속적으로 유지할 수 있습니다.

0개의 댓글