Hooks란 git에서 commit , push 등의 이벤트가 실행될 때 자동으로 지정해놓은 명령을 실행시키는 것을 의미합니다.
예를들어 commit을 할 때 마다 자동으로 push 까지 이루어지게 한다거나, commit 전에 정해진 형식을 지켰는지 한번 체크하는 등의 작업을 할 수 있습니다.
내 프로젝트 hooks 확인하기
hooks 폴더는 git init
을 실행하면 생기는 .git 폴더 내부에 들어있습니다.
💡 .git 폴더가 보이지 않는다면?
command(⌘) + shift(⇧) + .
명령어로 숨김 파일들을 볼 수 있습니다.
들어있는 파일들을 확인해보면 ~~~.sample 과 같은 이름으로 이루어져 있습니다. 이 파일들의 이름은 각각 언제 실행되는가를 나타냅니다.
pre-commit: 커밋이 이루어지기 전 (커밋 명령어 직후)
pre-push: 푸쉬가 이루어지기 전 (푸시 명령어 직후)
추가로 이러한 파일들 뒤의 sample을 삭제하면 바로 실행되는 스크립트가 됩니다.
Gitmoji를 hook와 연계해서 사용해 보려고 합니다.
맥
brew
로 설치 : brew install gitmoji
프로젝트 폴더에서 아래 명령어를 실행시킵니다.
gitmoji -i
실행한 후 hooks 폴더를 확인해보면 끝에 .sample이 붙지 않은 진짜 prepare-commit-msg 스크립트가 생성된 것을 확인할 수 있습니다.
이제 파일을 변경하고 Commit을 하게되면 다음과 같은 화면이 나옵니다.
위아래 화살표로 이모지를 선택 가능하고 채팅으로 검색해서 알맞은 이모지를 찾을 수도 있습니다.
원하는 이모지에 멈췄다면 Enter를 눌러 깃 메시지를 작성하고 커밋 & 푸시 를 하게되면
이렇게 깃 이모지가 잘 적용된 것을 확인할 수 있습니다.