Skip to main content

Command Palette

Search for a command to run...

자주 쓰이는 Git 훅들

Updated
2 min read

참고: git 훅에 대한 공식 문서가 존재합니다.


소스코드 관리 도구인 git은 여러가지 훅을 지원합니다. 훅을 설정하면 커밋, 푸시 등의 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있습니다. 클라이언트 훅도 존재하고 서버 훅도 존재하지만, GitHub 같은 호스팅 서비스들이 대부분 서버 사이드 훅을 지원하지 않기 때문에 클라이언트 사이드 훅이 주로 쓰입니다.

주의해야할 점은 보안을 위해 레포지토리를 클론해도 git 훅이 자동으로 설정되지 않는다는 점입니다. 그래서 훅을 설치하는 스크립트를 만들어서 그걸 실행해거나, husky 같은 git 훅 관리 도구를 사용해 훅을 설정해야 합니다.

훅의 종류

이 글에서는 흔히 쓰이는 세가지 클라이언트 사이드 훅만 다릅니다. 나머지 훅에 대해서는 페이지 상단에 링크된 공식 문서를 참조하세요.

pre-commit

pre-commit 훅은 커밋하기 전에 실행됩니다. 커밋 메시지를 작성하기 전에 호출되며, 이 스크립트가 0이 아닌 값을 반환하면 커밋이 취소됩니다. 이 훅은 린터를 돌리는 등 검증을 위해 사용됩니다. 그리고 git commit --no-verify로 이 훅을 생략할 수 있습니다.

commit-msg

commit-msg 훅은 커밋 메시지를 작성한 후 커밋되기 직전에 실행됩니다. pre-commit 훅과 마찬가지로 이 스크립트가 0이 아닌 값을 반환하면 커밋이 취소됩니다. 이 훅은 커밋 메시지 등을 점검할 때 쓰입니다.

프로젝트의 일관성, 혹은 ChangeLog 자동 생성을 위해 커밋 메시지 포맷을 일정하게 유지하는 경우가 있는데, 이런 경우에 유용한 훅입니다.

feat(fe/feat1): Show proper error message

예를 들어 모든 커밋 메시지가 위와 같은 제목을 가지고 있다면, 자동으로 어떤 파트가 어떻게 바뀌었는지에 대한 ChangeLog를 생성할 수 있습니다.

pre-push

pre-push 훅은 푸시하기 전에 실행됩니다. 위의 훅드로가 마찬가지로 이 스크립트가 0이 아닌 값을 반환하면 푸시가 취소됩니다. 이 훅을 이용하면 푸시하기 전에 테스트를 돌리거나, 린터를 돌리는 등의 작업을 할 수 있습니다. 커밋 훅과 역할이 겹치는데, commitpush보다 자주하기 때문에 두가지 훅을 같이 사용하는 경우 일반적으로 무거운 작업을 push훅에서 돌립니다.

More from this blog

한국의 학벌에 대한 생각

내 블로그의 제목이 kdy1: The way I think 인만큼 앞으로는 내 생각을 더 자주 올리려고 한다. 한국 기준으로, 학벌은 사람을 볼 때 꽤나 유용한 지표이지만, 절대적이지는 않다. 경험적인 얘기일 뿐이지만, 성균관대학교 자퇴생으로서 느낀 것들이 몇 가지 있다. 대학까지 간 사람의 학벌은 학습 능력 x 성실함 에 대체로 비례한다. 그래서 의미가

Apr 3, 20261 min read

인간 지능에 대한 메모장

최종 업데이트: 2026/03/15 지능의 유전 현재 인류 기준으로, 고지능자는 고지능 유전자가 많이 겹친 사람이다. 지능의 유전엔 X 염색체가 매우 중요한 역할을 한다. 그리고 이게 남자와 여자의 지능 분포 차이를 만든다. 극상위권에 여자가 거의 없는 이유가 이것이다. 고지능 X 염색체가 여자한테서 발현되려면 2개가 있어야 한다. 이는 인간의 생

Mar 15, 20262 min read

Ai 코딩 팁 2 (한국어)

발표 자료: https://gamma.app/docs/AI--2a52e7tk3eb1ch1 AI 활용법 관련해서 간단하게 발표를 했다. 발표 자료 앞쪽은 전에 블로그에 올린 글이랑 같은 내용이다. 이 글에서는 기존 글에서 다루지 않은 내용들을 다루겠다. 에러 메시지 및 로깅 구체적 타입 및 스키마 활용 any 타입은 사람에게도 위험하지만, AI에게는 더 위험하다. 마찬가지로, JSON.parse처럼 아무 제약 없는 파싱 느슨한 인터페이스 ...

Jan 30, 20265 min read

kdy1: The way I think

233 posts