husky
git hook을 손쉽게 제어하도록 도와주는 매니저
우리는 git
을 이용해 협업을 한다
협업을 시작하기 이전 개발 프로세스를 확립해놓을것이다
그런데 협업과정에서 누군가 정립해놓은 프로세스를 지키지 않는다면?
확실하게 계획을 세워도 지켜지지 않을 때가 많다
팀원이 게으르거나 고집스러워서 정말 고의적으로 프로세스를 따르지않는경우도 있지만
사람이 하는 일인 이상 실수를 하기 마련
확인하지 못한 실수를 git 업로드 이후에 알아버린다면...?
이미 팀원들은 분노에 찬 상태일 것이다
이런 불상사가 자주 일어나다 보니 등장한것이
git hooks 기능이다
git hooks는 git관련 이슈
가 발생했을때 특정 스크립트
를 실행할 수 있도록 하는 기능이다
크게 클라이언트 훅과 서버 훅으로 나뉜다
클라이언트 훅 :
commit
,merge
가 발생하거나push
가 발생하기 전 클라이언트에서 실행하는 훅
서버 훅 :git repository
로push
가 발생했을 때 서버에서 실행하는 훅
클라이언트 훅은 커밋 워크플로 훅, 이메일 워크플로 훅, 기타 훅으로 나뉜다
커밋 워크플로 훅: git commit 명령으로 커밋을 할 때 실행하는 훅
이메일 워크플로 훅: git am 명령으로 이메일을 통해 patch 파일을 적용할 때 실행하는 훅
기타 훅: Rebase, Merge, Push 와 같은 이벤트를 실행할 때 실행하는 훅
git hooks
는 .git/hooks
디렉토리 안에 저장된다.
이런식으로 숨어있다
즉 hooks은 우리가 git 폴더를 만들때 자동으로 저장되는 폴더다
아직 git을 활용한 협업을 공부해보지도 못한 상황이라 고민해보다가
hooks with husky 예제를 찾았다 요걸 가지고 실험을 해보자
여기서 파일을 모조리 다운받은다음...
깃을 실행해보면
오 역시 깃폴더가 하나 들어있다
commands shift >
를 눌러서 숨겨진 git 폴더를 찾은 후
샘플 예제와 함께 온 githooks 내용물을 넣어주자
자 그럼 커밋을 실행해보자
오 정말 후크 어쩌고가 뜬다 후크가 실행가능하도록 설정되지 않았다고 하는데..
아 devDependencies에 husky가 있다
그럼 yarn install은 못참지ㅋㅋ
바로 갈겨버리기
근데 로그는 여전히 그대로다
안되겠다 그냥 레포를 하나 만들고 평소에 하던식으로 해보자
똑같네;;
아무튼 hook은 git이 커밋하기전에 정제해주는 장치이고 이를 husky가 prettier,lint랑 연동시켜주는 구조인거 같은데...
도무지 모르겠다 후크에 대해서 한번 따로 포스팅을 하면서 샘플로 다시 시도해보겠다
Reference