Git hook은 Git이 Git 워크플로의 특정 지점(commit, push, merge 전후 등)에서 자동으로 실행하는 스크립트입니다. 자동화 — 표준 강제, 검사 실행, 동작 트리거 — 를 가능하게 하며, 코드 품질과 CI 통합에 널리 사용됩니다.
hook이란
hook은 .git/hooks/(또는 도구로 관리)에 있는 실행 가능한 스크립트로, Git이 이벤트에 실행:
클라이언트 측(로컬):
pre-commit → commit 생성 전(린트, 포맷, 빠른 테스트 실행)
commit-msg → commit 메시지 검증/포맷
pre-push → push 전(테스트 실행, 깨진 코드 push 방지)
post-merge/checkout → merge/checkout 후(예: 의존성 재설치)
서버 측(remote에서):
pre-receive / update → push 시 정책 강제(나쁜 push 거부)
post-receive → push 후 배포/CI/알림 트리거
일반적인 용도
✓ pre-commit → 코드 LINT 및 FORMAT; 빠른 테스트 실행; 비밀/디버그 코드 차단
→ commit되기 전에 문제를 잡음(빠른 피드백, 일관된 품질)
✓ commit-msg → 메시지 형식 강제(예: Conventional Commits)
✓ pre-push → 테스트 스위트 실행 → 실패하는 코드 push 안 함
✓ 서버 측 → 정책 강제; CI/CD와 배포 트리거
