커밋 메시지 규칙을 유지하는 것은 협업의 효율성을 높이고, 코드 변경 이력을 명확히 하는 데 중요합니다.
Commitlint와 Husky를 사용하면 커밋 메시지를 자동으로 검사하고, 규칙을 강제하여 일관성을 유지할 수 있습니다.
이번 블로그에서는 이 두 도구를 설정하고 사용하는 방법을 소개하겠습니다.
1. Commitlint란?
Commitlint는 커밋 메시지가 규칙에 맞게 작성되었는지 자동으로 검사해주는 도구입니다.
이를 통해 일관된 커밋 메시지 규칙을 유지할 수 있으며, 팀 내 커밋 메시지 표준을 쉽게 적용할 수 있습니다.
Commitlint 설치하기
1. Node.js와 npm 또는 yarn이 설치되어 있어야 합니다. 먼저 Commitlint와 @commitlint/config-conventional을 설치합니다.
npm install --save-dev @commitlint/{config-conventional,cli}
또는
yarn add --dev @commitlint/{config-conventional,cli}
2. Commitlint를 설정할 파일을 생성합니다.
프로젝트 루트 디렉토리에 commitlint.config.js 파일을 생성하고, 다음 내용을 추가합니다.
module.exports = {
extends: ['@commitlint/config-conventional']
};
이 설정은 Conventional Commits 규칙을 기반으로 커밋 메시지를 검사합니다.
2. Husky란?
Husky는 Git hooks를 사용하여 Git 명령어를 실행할 때 자동으로 특정 작업을 수행하게 하는 도구입니다.
예를 들어, 커밋 전에 커밋 메시지 규칙을 검사하는 작업을 추가할 수 있습니다.
Husky 설치하기
1. Husky를 설치합니다.
npm install --save-dev husky
또는
yarn add --dev husky
2. Husky를 활성화하고, Git hooks를 설정합니다.
npx husky install
이 명령어를 실행하면 .husky 디렉토리가 생성됩니다.
Commitlint와 Husky 통합하기
1. Husky와 Commitlint를 통합하기 위해 Git hook을 설정합니다. .husky 디렉토리 안에 commit-msg 파일을 생성하고, 다음 내용을 추가합니다.
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1
이 스크립트는 커밋 메시지가 작성될 때마다 Commitlint를 호출하여 규칙에 맞는지 검사합니다.
2. Husky와 Commitlint가 제대로 설정되었는지 확인합니다.
커밋 메시지를 규칙에 맞게 작성하고 커밋을 시도해보세요. 규칙에 맞지 않는 메시지를 입력하면 커밋이 실패하게 됩니다.
3. 추가적인 설정
- Husky의 다른 Git hook을 설정할 수도 있습니다. 예를 들어, 커밋 전에 코드 포맷팅을 자동으로 적용하거나, 테스트를 실행할 수 있습니다.
- Commitlint의 규칙을 커스터마이즈하고 싶다면, commitlint.config.js 파일에 추가 설정을 넣어 규칙을 변경할 수 있습니다.
커스터마이즈 예시
commitlint.config.js 파일에 커스터마이즈된 규칙을 추가할 수 있습니다.
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore']]
}
};
이 예시는 커밋 타입을 feat, fix, docs, style, refactor, test, chore로 제한합니다.
이제 Commitlint와 Husky를 사용하여 커밋 메시지 규칙을 자동으로 검사하고, 규칙을 강제하여 일관성을 유지할 수 있습니다.
이 도구들을 활용하면 팀 내 협업이 더욱 원활해지고, 코드 변경 이력을 관리하는 데 큰 도움이 될 것입니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Program Development Tips > Git' 카테고리의 다른 글
[Git] 파일 상태 완벽 정리: Untracked부터 Staged까지, Git의 모든 상태 이해하기! (0) | 2024.08.14 |
---|---|
[Git] Working Directory, Staging Area, Repository 완벽 가이드 (0) | 2024.08.12 |
[Git] 커밋 메시지 규칙: 깔끔하고 일관된 코드 관리의 핵심 (0) | 2024.08.11 |
[Git] Commit 전에 유저 정보 설정하기: 초보자 가이드 (0) | 2024.08.11 |
[Git] Repository 만들기: 초보자 가이드 (0) | 2024.08.11 |