[TIL]husky 개념정리

leo3179·2022년 3월 31일
0

[TIL]

목록 보기
8/18

husky

git hook을 손쉽게 제어하도록 도와주는 매니저

우리는 git을 이용해 협업을 한다
협업을 시작하기 이전 개발 프로세스를 확립해놓을것이다

그런데 협업과정에서 누군가 정립해놓은 프로세스를 지키지 않는다면?

확실하게 계획을 세워도 지켜지지 않을 때가 많다
팀원이 게으르거나 고집스러워서 정말 고의적으로 프로세스를 따르지않는경우도 있지만

사람이 하는 일인 이상 실수를 하기 마련
확인하지 못한 실수를 git 업로드 이후에 알아버린다면...?
이미 팀원들은 분노에 찬 상태일 것이다

이런 불상사가 자주 일어나다 보니 등장한것이
git hooks 기능이다

Git Hooks

git hooks는 git관련 이슈가 발생했을때 특정 스크립트를 실행할 수 있도록 하는 기능이다

크게 클라이언트 훅과 서버 훅으로 나뉜다

클라이언트 훅 : commit, merge가 발생하거나 push가 발생하기 전 클라이언트에서 실행하는 훅
서버 훅 : git repositorypush가 발생했을 때 서버에서 실행하는 훅

Client Hook

클라이언트 훅은 커밋 워크플로 훅, 이메일 워크플로 훅, 기타 훅으로 나뉜다

커밋 워크플로 훅: git commit 명령으로 커밋을 할 때 실행하는 훅
이메일 워크플로 훅: git am 명령으로 이메일을 통해 patch 파일을 적용할 때 실행하는 훅
기타 훅: Rebase, Merge, Push 와 같은 이벤트를 실행할 때 실행하는 훅

Git Hooks 적용

git hooks.git/hooks 디렉토리 안에 저장된다.
이런식으로 숨어있다
즉 hooks은 우리가 git 폴더를 만들때 자동으로 저장되는 폴더다

아직 git을 활용한 협업을 공부해보지도 못한 상황이라 고민해보다가
hooks with husky 예제를 찾았다 요걸 가지고 실험을 해보자

여기서 파일을 모조리 다운받은다음...
깃을 실행해보면

오 역시 깃폴더가 하나 들어있다
commands shift >를 눌러서 숨겨진 git 폴더를 찾은 후

샘플 예제와 함께 온 githooks 내용물을 넣어주자

자 그럼 커밋을 실행해보자


오 정말 후크 어쩌고가 뜬다 후크가 실행가능하도록 설정되지 않았다고 하는데..

아 devDependencies에 husky가 있다

그럼 yarn install은 못참지ㅋㅋ

바로 갈겨버리기

근데 로그는 여전히 그대로다


안되겠다 그냥 레포를 하나 만들고 평소에 하던식으로 해보자

똑같네;;

아무튼 hook은 git이 커밋하기전에 정제해주는 장치이고 이를 husky가 prettier,lint랑 연동시켜주는 구조인거 같은데...
도무지 모르겠다 후크에 대해서 한번 따로 포스팅을 하면서 샘플로 다시 시도해보겠다

Reference

husky 로 git hook 하자
husky로 손쉽게 git hook 관리하기

profile
개발 공부중

0개의 댓글