
Unity 프로젝트를 위한 Git Hooks 활용
두줄요약
Unity 대규모 협업에서 CI만으로 막기 어려운 커밋 문제를 Git Hooks로 예방했습니다.\nHook 공유·자동 설치와 Rust 기반 바이너리 Hook의 운영 주의점을 소개합니다.
문제 상황
- 다직군 다수가 단일 Unity 저장소의 메인 브랜치에 빠르게 반영하는 트렁크 기반 개발 환경
- CI 완료 전 신규 커밋이 누적돼 문제 커밋 추적과 대응 부담 증가
- OS 비호환 파일명, Unity
.meta파일 쌍 불일치로 체크아웃·충돌·에셋 참조 소실 위험
해결 방법
pre-commitHook으로 잘못된 파일명과.meta불일치 등 커밋 전 문제 차단.githooks와core.hooksPath로 Hook 코드의 저장소 내 공유·버전 관리- Unity
InitializeOnLoadMethod에서 로컬 Git 설정을 등록해 Hook 설치 자동화
성능/운영 포인트
post-merge바이너리 Hook으로 Unity 버전 업데이트 시 Unity Hub 설치 페이지 자동 실행- 복잡하거나 성능 민감한 Hook에 Rust 바이너리와 OS별 크로스 컴파일 적용
- Hook 오류 시 CI 경고와 엔지니어 대응 부담 감소를 위한 빠른 실행 시간 확보
주의할 점
- 오탐으로 팀 전체 커밋이 막히지 않도록 다환경 테스트와 수동 검증 우선
--no-verify등 우회 방법과 이해하기 쉬운 오류 메시지 제공- 로컬 저장소 밖 파일·전역 설정 변경 지양, Hook 목적과 동작 사전 공유

