방명록
- [Git] Commit message 규칙2023년 12월 30일 09시 04분 06초에 업로드 된 글입니다.작성자: 민발자728x90
개인 프로젝트 마이그레이션 과정 중 중구난방인 커밋메시지로 히스토리 확인이 어렵다..
그래서 찾아본 커밋 메시지 작성 규칙
목적
커밋 메시지 스타일을 구조화해 일관성 있게 사용하는 이유!
- 코드 리뷰 시간을 단축하고 능률적으로 처리하기 위해서
- 변경 사항을 이해해는데 도움을 주기 위해서
- 코드만으론 설명이 어려운 "왜 이렇게 했을까"를 설명하기 위해서
- 추후 작업할 사람이 왜/어떻게 변경 사항이 만들어졌는지 이해하는데 도움을 주고 문제 해결과 디버깅을 쉽게 만들기 위해서
Commit message 규칙
① 제목과 본문을 빈 행으로 구분
② 제목을 50글자 내로 제한
③ 제목 첫 글자는 대문자로 작성
④ 제목 끝에 마침표 넣지 않기
⑤ 제목은 명령문으로 사용하며 과거형을 사용하지 않는다
⑥ 본문의 각 행은 72글자 내로 제한
⑦ 어떻게 보다는 무엇과 왜를 설명
커밋 메시지 구조
제목, 본문, 꼬리말 3가지로 빈 줄로 구분
본문과 꼬리말은 선택사항
type : subject body footer
커밋 메시지 예시
feat: Summarize changes in around 50 characters or less More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of the commit and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); various tools like `log`, `shortlog` and `rebase` can get confused if you run the two together. Explain the problem that this commit is solving. Focus on why you are making this change as opposed to how (the code explains that). Are there side effects or other unintuitive consequences of this change? Here's the place to explain them. Further paragraphs come after blank lines. - Bullet points are okay, too - Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank lines in between, but conventions vary here If you use an issue tracker, put references to them at the bottom, like this: Resolves: #123 See also: #456, #789
① 제목 subject
type: [#issueNumber ] subject
- 해당 커밋의 유형 type과 제목은 필수 사항
- 타입은 소문자로 작성
- [] 내용은 옵션, 이슈 트래킹에서 제공하는 이슈 번호를 넣어준다
- 여러 개의 이슈가 합쳐진 경우에는 생략하는 것이 좋다
- 제목은 해당 커밋의 주요 내용을 간략하게 작성
- 제목은 최대 50자를 넘지 않도록
- 명령조로 작성은 동사 원형으로 작성을 의미
- 회원 서비스 추가
① 종류 type
- 상황에 맞춰 적절히 사용
fix 기능 버그 픽스 docs 문서(주석) 추가/수정 style 스타일 관련 작업을 했을 경우, 서식 지정, 세미콜론 누락 등 코드 직접적인 변경 없음 refactor 코드 리팩토링했을 경우, 코드 리뷰 등으로 로직(기능)의 변화없이 단순 함수 내부에서만 사용하는 이름을 변경 등 test 테스트 코드를 별도 추가/변경했을 경우(만약 기능을 추가하면서 테스트 코드를 동시에 작성했을 경우 feat 타입 사용) chore 기능/테스트 코드, 문서, 스타일, 리팩토일을 제외한 배포, 빌드 등과 같은 프로젝트의 기타 작업들에 대해 추가/수정했을 경우, 코드 스타일을 수정했을 때도 사용 feat 새로운 기능을 추가하거나 기존의 기능을 요구 사항 변경으로 변경한 경우, 기능 추가와 수정을 나누어서 쓰고 싶은 경우 아래 2개의 타입으로 사용 new 새로운 기능을 추가한 경우 improve 기존 기능을 수정한 경우, 요구 사항이 변경되어 수정된 경우 release 릴리즈 하기 위해 패키지 버전을 올리거나 릴리즈 버전 커밋을 찍기 위한 경우 ci CI관련 설정 수정에 대한 커밋 build 빌드 관련 파일 수정에 대한 커밋 ② 본문 body
- 본문은 선택 사항
- 해당 커밋에서 수정된 상세내역을 작성
- 한 줄에 72자 이하로 작성
- 어떻게 보다는 무엇을 왜에 맞춰 작성
- 수정 내역을 * 기호 이용해 하나씩 입력하는 방법도 좋다
- 어떻게 고쳐졌는지는 코드 히스토리 통해 파악 가능하니 무엇을 왜 했는지 작성
③ 꼬리말 footer
- 꼬리말은 선택사항
- 해당 커밋과 관련된 이슈 트래킹 번호 입력
- 꼬리말에 이슈 번호를 라벨과 함께 추가
③ 라벨
Resolves 문의나 요청에 의한 이슈 Closes 일반적인 개발과 관련된 이슈 Fixes 버그 픽스, 핫 픽스 관련 이슈 See also 해당 커밋의 이슈와 연관되어 있는 이슈들이 존재하는 경우 참고
https://blog.munilive.com/posts/my-git-commit-guide.html
https://udacity.github.io/git-styleguide/
https://blog.ull.im/engineering/2019/03/10/logs-on-git.html
728x90'정리 > Git' 카테고리의 다른 글
[Git] Git Branch 전략 - git-flow (0) 2024.02.05 [Git] gitignore 작성하기 (0) 2024.01.08 Git 기본 명령어 (0) 2023.07.28 Git 설치 (0) 2023.07.25 버전관리 (0) 2023.07.25 다음글이 없습니다.이전글이 없습니다.댓글