[commit] husky로 커밋메세지 관리하기! (feat. Git Hook)

2025. 8. 12.·개발 지식
728x90

📍Commit Message

Git에서 협업을 진행하다보면 서로가 정해둔 규칙외에 다른 방식으로 커밋 메세지를 올리는 경우가 있다. 빠르게 작업하다가 실수를 할 수도 있고, 처음 접하는 프로젝트에서는 아예 해당 규칙을 모르는 상태로 커밋을 하는 경우도 있다. 이런 케이스를 husky 설정으로 원천적으로 방지해줄 수 있다.

 

📋 Husky 란?

Husky에 대해 알기전에 Git Hook이 뭔지 알고 넘어가야 한다. Git hook이란 커밋이나, 머지 같이 git과 관련된 이벤트가 발생했을 때, 특정 동작이 실행될 수 있도록 해주는 기능이다. Husky는 Git hook을 쉽게 관리하고 실행할 수 있게 해주는 도구이다! 이를 통해서 코드 품질, 일정한 커밋 메세지, 배포 전 안전장치 등을 추가해 둘 수 있다. 여기서는 커밋 메세지를 관리하는 방법만 살펴볼 예정이다.

 

 

🖥️ 설치하기

// 설치
pnpm add husky -D

// Git hooks 활성화
npx husky init

// commit-msg 훅 생성 (예: commitlint 실행)
npx husky add .husky/commit-msg "pnpm commitlint --edit \$1"

 

 

위 순서를 따르면 커밋 진행시에 .commitlintrc.mjs 에 있는 규칙으로 메세지를 검증한다.

 나의 경우 {작업 알파벳} {대쉬} {넘버} 로 이루어져있는데 .commitlintrc.mjs에 아래와 같이 추가 해주었다.

 

export default {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'header-pattern': [2, 'always', /^[A-Z]{2,}-\d+\s+.+/],
  },
};

 

이렇게 규칙을 추가해주고 해당 규칙에 맞지 않는 커밋 메세지를 설정하면 정상적으로 진행되지 않고 막힌다.

다만 터미널에 복잡하게(?) 에러를 표출해준다. 위 설정파일에 추가적으로 관련 내용을 적어주면 해당 에러도 편안하게 확인 가능하다.

 

export default {
  extends: ['@commitlint/config-conventional'],
  rules: {
  // 가장 첫 숫자 의미 === 0: 비활성화, 1: 경고-커밋허용, 2:에러-커밋차단
    'header-pattern': [2, 'always', /^[A-Z]{2,}-\d+\s+.+/],
  },
  // plugin 부분 추가!!
  plugins: [
    {
      rules: {
        'header-pattern': ({ raw }) => {
          const pattern = /^[A-Z]{2,}-\d+\s+.+/;
          return [pattern.test(raw), '이렇게만 해야함'];
        },
      },
    },
  ],
};

 

그러면 친절하게 아래 이미지 처럼 설정한 값으로 에러를 표기해준다.

위 커밋메세지 제한 수위도 정할 수 있으니 팀원들과의 이야기를 통해서 추가해두면 되지 싶다.

 

 


 

이제 커밋메세지 이상하게 날리면

핰씨

 

728x90

'개발 지식' 카테고리의 다른 글

[Cursor] Cursor Rules 적용, 세분화하기  (2) 2025.09.15
[Cursor] Cursor Rules 적용  (0) 2025.09.11
[vscode] Todo Tree 로 코드 TODO 관리하기  (0) 2025.06.09
[nvmrc] nvm use 자동 적용시키기 (feat. zshrc)  (0) 2025.03.14
[리눅스] bin 폴더가 뭐야? (feat. /bin, /usr/bin, /usr/local/bin)  (1) 2025.03.05
'개발 지식' 카테고리의 다른 글
  • [Cursor] Cursor Rules 적용, 세분화하기
  • [Cursor] Cursor Rules 적용
  • [vscode] Todo Tree 로 코드 TODO 관리하기
  • [nvmrc] nvm use 자동 적용시키기 (feat. zshrc)
devQ
devQ
    250x250
  • devQ
    개발하는 리트리버
    devQ
  • 전체
    오늘
    어제
    • 분류 전체보기 (141)
      • Front-end (75)
      • FUTURE⭐️ (0)
      • React-Native (12)
      • Back-end (4)
      • 기타 개발 (4)
      • 개발 지식 (34)
      • 코뷰 리뷰 (2)
      • 이벤트 (2)
      • --------------------- (1)
      • 서울숲복합문화체육센터 (6)
  • 블로그 메뉴

    • 홈
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
devQ
[commit] husky로 커밋메세지 관리하기! (feat. Git Hook)
상단으로

티스토리툴바