훅 동작
훅(Hooks)은 깃의 특정 동작에 반응하여 동작하는 스크립트입니다.
사용자 훅 스크립트를 이용하여 깃의 동작을 확장할 수 있습니다.
스크립트
훅(hook) 스크립트는 깃의 동작에 결합되어 실행됩니다. 깃의 명령에 따라 스크립트의 종류를 구별할 수 있습니다.
단계별 스크립트
훅은 하나의 깃 동작에 대해 처리하게 됩니다. 하나의 동작은 다시 여러 단계로 구별하며 이를 구분하여 스크립트를 작성할 수 있습니다.
-
Pre
pre 접두사는 동작을 처리하기 전에 실행되는 스크립트를 의미합니다. Pre가 붙은 훅은 보통 동작을 적용하기 전 단계에서 승인, 거부, 체크 등을 합니다.
-
Post
post는 동작이 수행되고 나서 처리되는 스크립트들을 말합니다. 동작을 완료되고 추가적인 작업을 더 하고자 할 때 사용합니다.
그 외 중간 단계의 prepare와 같은 스크립트도 존재합니다.
동작 취소
훅을 이용한 스크립트는 깃의 동작을 검사합니다. 단순한 동작 패턴을 검색할 수도 있으며, 추가적인 작업들도 수행할 수 있습니다.
동작을 검사하는 도중, 조건일 일치하지 않을 때 반한 값을 통하여 동작을 취소할 수 있습니다.
반환값
스크립트 작성 시 반환값을 깃에게 전달할 수 있습니다. 반환값으로 0을 전달하게 되면 정상적인 작업을 말합니다.
0 이외의 값을 전달할 경우 깃은 비정상 동작으로 인식하며, 깃의 동작을 취소하게 됩니다.
주의
훅 스크립트를 사용하여 깃의 동작을 확장할 수 있는 점은 매력적입니다. 하지만 이를 너무 남용하게 되면 깃의 성능이 저하될 수도 있습니다.
깃은 다른 개발자들과 협력할 때 방해 요소가 될 수 있습니다. 확장된 훅 기능은 다른 개발자들과도 공유가 필요합니다. 또한, 학습을 해야 되는 경우도 발생합니다.
훅 기능은 꼭 필요한 경우에만 사용하는 것이 좋습니다.
실습 준비
훅 기능을 학습하기 위해 별도의 저장소를 생성합니다.
저장소 생성
새로운 저장소를 만듭니다.
$ mkdir githooks
$ cd githooks/
$ git init
Initialized empty Git repository in E:/githooks/.git/
infoh@DESKTOP-VAKLOFQ MINGW64 /e/githooks (master)
훅 기능 확인
깃은 다양한 훅 기능을 제공하고 있습니다. 깃의 help 명령으로 상세한 훅 사용 매뉴얼을 볼 수 있습니다.
infoh@DESKTOP-VAKLOFQ MINGW64 /e/githooks (master)
$ git help hooks
깃교과서
버전 관리 시스템의 이해와 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지
깃, 소스트리, 깃허브로 실습하며 기본기를 탄탄하게 다진다!