Git - Commit Message Convention

2023. 9. 22. 12:03개발/Git

728x90
반응형

사용 이유

- Git을 사용하는 이유는 코드 형상관리와 협업을 통해 소스 코드를 체계적으로 관리하는 툴이다.

하지만 너무 많은 사용자가 하나의 저장소를 접근한다면 관리되지 않은 커밋 메시지들이 즐비할 것이다.

그것을 방지하기 위해 Convention이라는 규칙을 정해줌으로써 Commit Message에 가독성을 좋게 한다.

 

기본적인 Commit Message 구조

제목 (Type: Subject)
(한 줄 띄어 분리)
본문 (Body)
(한 줄 띄어 분리)
꼬리말 (Footer)

1. Subject 

-- 제목은 50글자 이내로 작성한다.

-- 첫 글자는 대문자로 작성한다.

-- 마침표 및 특수기호는 사용하지 않는다.

-- 영문으로 작성하는 경우 동사(원형)를 가장 앞에 명령어로 작성한다.

-- 과거시제는 사용하지 않는다.

-- 간결하고 요점적으로 즉, 개조식 구문으로 작성한다.

ex) Fixed --> Fix
      Added --> Add
     Modified --> Modify

2. Body

-- 72자 이내로 작성한다.

-- 최대한 상세히 작성한다.

-- 어떻게 변경했는지보다 무엇을, 왜 변경했는지 작성한다.

3. Footer

-- 선택사항이다.

-- 이슈 번호를 작성해도 좋다.

-- 이슈 트래커 유형은 다음 중 하나를 사용한다.

--- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
--- Resolves: 이슈를 해결했을 때 사용
--- Ref: 참고할 이슈가 있을 때 사용
--- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)

ex) Fixes: #45 Related to: #34, #23

 

Commit Type

- 커밋의 타입 구성

태그: 제목
:(space)제목 으로 :뒤에만 space를 넣는다.

※ 추가적인 문맥 정보를 제공하기 위한 목적으로 괄호 안에 추가할 수 있다.
EX ) Fix(db)

- 유형들

Tag Name Description
Feat 새로운 기능을 추가
Fix 버그 수정
Design CSS 등 사용자 UI 디자인 변경
!BREAKING CHANGE 커다란 API 변경의 경우
!HOTFIX 급하게 치명적인 버그를 고쳐야하는 경우
Style 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor 프로덕션 코드 리팩토링
Comment 필요한 주석 추가 및 변경
Docs 문서 수정
Test 테스트 코드, 리펙토링 테스트 코드 추가, Production Code(실제로 사용하는 코드) 변경 없음
Chore 빌드 업무 수정, 패키지 매니저 수정, 패키지 관리자 구성 등 업데이트, Production Code 변경 없음
Rename 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove 파일을 삭제하는 작업만 수행한 경우

 

사용 예시

Feat: 회원 가입 기능 구현

SMS, 이메일 중복확인 API 개발

Resolves: #123
Ref: #456
Related to: #48, #45

그 외

Fix : 버그 수정
Fix my test
Fix typo in style.css

Update : Fix와 달리 원래 정상적으로 동작했지만 보완의 개념
Update harry-server.js to use HTTPS

Add
Add documentation for the defaultPort option

Remove(Clean이나 Eliminate) : ‘unnecessary’, ‘useless’, ‘unneeded’, ‘unused’, ‘duplicated’가 붙는 경우가 많음
Remove fallback cache

Refactor : 리팩토링

Simplify : Refactor와 유사하지만 약한 수정, 코드 단순화

Improve : 호환성, 테스트 커버리지, 성능, 검증 기능, 접근성 등의 향상
Improve iOS's accessibilityLabel performance by up to 20%

Implement : 코드 추가보다 큰 단위의 구현
Implement bundle sync status

Correct : 주로 문법의 오류나 타입의 변경, 이름 변경 등에 사용
Correct grammatical error in BUILDING.md

Move : 코드나 파일의 이동
Move function from header to source file

Rename : 이름 변경
Rename node-report to report

 

Commit Message Emoji

- 이모티콘으로도 관리를 한다.

참고 : https://gitmoji.dev/
 

gitmoji

:truck: Move or rename resources (e.g.: files, paths, routes).

gitmoji.dev

 

출처

https://velog.io/@archivvonjang/Git-Commit-Message-Convention
 

[Git] Commit Message Convention

Git을 협업에 알맞게, 커뮤니케이션에 유용하게, 깔끔한 가독성을 가지도록 사용하기 위해서 좋은 커밋 세미지를 사용하는 것이 중요하다. 그러기 위해서 커밋 컨벤션을 정리하였다.

velog.io

 

728x90
반응형