Git Hooks

Git에는 commit, merge, push 등 어떤 이벤트가 발생했을 때

자동으로 특정 스크립트를 실행하는 Git Hooks라는 기능이 있습니다.

Git 저장소에 기본적으로 존재하는 .git 디렉토리 내부에 hooks라는 디렉토리가 존재하는데,

해당 디렉토리 안에는 아래와 같이 이벤트 종류별로 스크립트 예제가 존재합니다.

$ ls .git/hooks
applypatch-msg.sample      prepare-commit-msg.sample
commit-msg.sample          pre-push.sample
fsmonitor-watchman.sample  pre-rebase.sample
post-update.sample         pre-receive.sample
pre-applypatch.sample      push-to-checkout.sample
pre-commit.sample          update.sample
pre-merge-commit.sample

여기서는 commit할 때 자동으로 코드 스타일을 검사해 주는 것이 목표이기에,

커밋 메시지가 작성되기 전에 호출되는 pre-commit 훅을 사용할 것입니다.

pre-commit

역시나 이번에도 업계 선배님들께서 앞서 길을 번지르르하게 닦아 놓으셨습니다!

훅 이름과 동일한 pre-commit이라는 유용한 도구가 이미 개발되어 있으므로,

우리는 감사한 마음을 가지고 사용하는 일만 남았습니다.

Installation

코드 스타일 검사에 이용할 코드 포매터는 각자 원하는 것을 사용하면 됩니다.

여기서는 clang-format을 사용하는 경우를 기준으로 진행해 보도록 하겠습니다.

macOS:

$ brew install pre-commit
$ brew install clang-format

Linux: