commit
or merge
가 발생했을 때 클라이언트에서 실행하는 훅push
가 발생했을 때 서버에서 실행하는 훅.git/hooks
디렉토리 내부에 스크립트를 저장.git/hooks/pre-commit
.sample
.git
디렉토리는 버전 관리 대상이 아니므로 remote 서버에서 공유 불가(버전 관리 불가).git/hooks
디렉토리로 복사하는 스크립트를 함께 공유 (단순한 파일 복사 방식)git clone
후에 반드시 ./setup_hooks.sh
를 실행해야하는 문제./githooks/
└─ pre-commit
└─ pre-push
./setup_hooks.sh
#!/bin/sh
cp githoooks/* .git/hooks
git clone
시, template 옵션에 별도의 Git Hooks 디렉토리 경로 지정.git
디렉토리를 초기화할 수 있는 점 활용git clone --template=./githooks/ [git repo url]
위 두가지 방식은 Git Hooks이 적용되지 않을 가능성이 크다.
.git/hooks
디렉토리를 건들지않고 git hook 스크립트 제어 가능npx husky-init && npm install
npx husky add .husky/[hook 이름] '[실행할 명령어]'
.husky
폴더 내부에 스크립트 파일 생성됨
- 수동 설치 및 셋업
-npm install --save-dev husky
oryarn add -dev husky
// package.json { "scripts": { "prepare": "husky install" }, }