일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 삼성코테
- BFS
- 컴퓨팅사고
- 알고리즘
- 코테 문제
- bfs문제
- MCU 딥러닝
- tinyml
- 삼성코딩테스트
- 자료구조
- 삼성역테
- 포스코 ai 교육
- 딥러닝
- 초소형머신러닝
- 코테
- 임베디드 딥러닝
- tflite
- 포스코 AI교육
- 삼성역량테스트
- 다이나믹프로그래밍
- DP문제
- dfs문제
- 포스코 교육
- sort
- 코딩테스트
- TensorFlow Lite
- DP
- 그리디
- dfs
- 영상처리
- Today
- Total
코딩뚠뚠
Commitlint 커밋린트 란 본문
개요
commitlint 를 이해하기 전에 알아야될것들을 우선 개요에서 설명하려 한다.
커밋 메세지 컨벤션 :
프로젝트를 깃으로 관리할땐 커밋메세지를 남기곤 한다.
협업을 위해서 커밋메세지의 통일성이 필요하고, 커밋 메세지 컨벤션은 이에 대한 규칙이다.
규칙들 :
- 제목과 본문을 빈 행으로 구분
- 제목을 50글자 이내로 제한
- 제목의 첫 글자는 대문자로 작성
- 제목의 끝에는 마침표를 넣지 않는다
- 제목은 명령문으로 작성하며 과거형X
- 본문의 각 행은 72글자 내로 제한한다
- 어떻게 보다는 무엇과 왜 를 설명한다
커밋 메세지 구조 :
$ <type>(<scope>): <subject> -- 헤더
<BLANK LINE> -- 빈줄
<body> -- 본문
<BLANK LINE> -- 빈줄
<footer> -- 바닥글
githook :
프로그래밍에서 hook이란 특정 함수 전후에 호출이 되는 코드를 말한다
git에서 이벤트는 commit, pull, merge 등이 있을것이다.
githook를 이용해 위의 git 이벤트 전후에 어떠한 코드를 호출시킬 수 있다.
우리가 호출시키지 않더라도 이미 지정되어 있는 훅 들이 있다.
(클라이언트훅 : commit발생,merge발생,push 전 /서버훅 : push가 발생했을때 서버에서 실행)
아래 경로에서 확인이 가능하다
$ ls -ahl
...
$ cd .git/hooks
$ ls
...
-> .sample 파일들이 존재한다
-> 사용하기 우해서는 .sample을 지워주면 된다.
husky :
Githooks를 쉽게 적용할 수 있는 npm 모듈
Githooks에 자세히 알지 못해도 정책을 관리,공유할 수 있다.
ex : master로 직접 push하는것을 방지하기
commitlint 란
위에서 말한 커밋 컨벤션을 지키기 쉽게 해주는 린터(코딩스타일)의 일종이다.
(conventional commit linter의 일종)
기준 컨벤션은 아래와 같다.
$ <type>(<scope>): <subject> -- 헤더
<BLANK LINE> -- 빈줄
<body> -- 본문
<BLANK LINE> -- 빈줄
<footer> -- 바닥글
장점 : 커밋이 생성되기 전 내역을 검사해주어, 장기적인 프로젝트 유지 보수에 도움이 된다.
단점 : 지저분한 부수적인 파일들이 생긴다.
사용 :
commitlint 를 githook에 등록시켜서 커밋 등록 전 컨벤션이 지켜졌는지 검사하게 해보자
1. commitlint cli, conventional config 설치
npm install --save-dev @commitlint/{config-conventional,cli}
# For Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli
2. commitlint.config.js 파일 생성
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
3. husky를 이용해 githook 을 등록
$ npm install husky --save-dev
$ npx husky install
4. commit-msg hook 적용하기
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
5. 테스트
컨벤션을 지키지 않은 메시지로 커밋을 생성
git commit -m 'helloworld'
결국 이 모든건 커밋 스타일을 통일하기위해 하는 일이라는것
끝
References :
http://meonggae.blogspot.com/2017/03/git-git-hooks.html
https://hepheir.github.io/posts/2022-05-28-commitlint/
https://www.conventionalcommits.org/en/v1.0.0/
'공부 > 기타' 카테고리의 다른 글
git diff 정리하기 (0) | 2022.10.09 |
---|---|
[C/C++] ->(화살표) 와 .(도트) (1) | 2022.10.03 |
colab에서 커스텀 폴더/패키지 import 방법 (0) | 2022.09.04 |
[Git에러] Password authentication is temporarily disabled as part of a brownout (0) | 2022.07.17 |
React 프로젝트에 카카오 애드핏 적용하기 (5) | 2022.07.17 |