어떻게 버그까지 사랑하겠어, 개발을 사랑하는 거지
[Git / GitHub] 커밋 컨벤션(Commit Convention) 본문
프로젝트를 진행하면 보통 버전 관리 도구를 통해 코드가 관리되며, 많은 커밋 기록이 쌓이게 된다. 특히 팀 프로젝트라면 자연스럽게 그 규모가 커지는데, 이때 커밋 메시지가 일관성이 없으면 다른 사람들이 코드를 이해하기 어렵고, 유지보수도 힘들어질 수 있다. 그렇기 때문에 원활한 협업을 위해 사용할 수 있는 것이 커밋 컨벤션이다.
커밋 컨벤션은 Git 커밋 메시지를 작성할 때 따르는 규칙을 말한다. 커밋 할 때 이렇게 하자~ 라고 정해서 코드의 일관성을 유지하고, 프로젝트의 히스토리를 쉽게 파악하며, 추적할 수 있도록 도와주는 것이다.
Udacity Git Commit Message Style Guide를 참고하여 커밋 컨벤션을 정리해 보았다.
커밋 메시지는 아래와 같이 제목(Title), 본문(Body), 바닥글(Footer)로 나눌 수 있다.
제목(Title)은 type: Subject의 형식을 따르되 필수 구성이고, 본문(Body)과 바닥글(Footer)은 선택 사항으로, 필요할 때 작성하면 된다.
type: Subject
body
footer
⚡️ 제목(Title)
1. 형식은 type: Subject를 따른다. (타입은 아래 참조!)
| 유형(Type) | 설명 |
| feat | 새로운 기능 추가 A new feature |
| fix | 버그 수정 A bug fix |
| docs | 문서 변경(README.md 등 코드 외 문서 변경) Changes to documentation |
| style | 코드 포맷팅 변경, 세미 콜론 추가 등 [로직에 영향을 주지 않음] Formatting, missing semi colons, etc; no code change |
| refactor | 프로덕션 코드 리팩토링으로, 기존 코드를 개선 [기능 변화 없음] Refactoring production code |
| test | 테스트 코드 추가 또는 기존 테스트 코드를 리팩토링 [프로덕션 코드에 영향을 주지 않음] Adding tests, refactoring test; no production code change |
| chore | 빌드 작업, 패키지 매니저 설정 변경 등 기타 변경 [프로덕션 코드에 영향을 주지 않음] Updating build tasks, package manager configs, etc; no production code change |
2. type: Subject에서 type과 Subject 사이에 공백을 두어야 한다,
콜론(:) 뒤에 한 칸을 띄워야 한다.
3. Subject는 50자를 넘지 않아야 한다.
4. Subject는 대문자로 시작하며 마침표(.)를 찍지 않는다.
5. Subject는 명령형 현제 시제를 따른다.
예를 들어 changed나 changes가 아닌 change를 사용한다.
⚡️ 본문(Body)
본문은 선택사항(optional)이며, 약간의 설명이나 맥락이 필요할 때 사용한다.
1. "무엇(what)"을, 그리고 "왜(why)" 변경했는지를 설명해야 한다.
"어떻게(how)" 변경했는지 설명하지 않는다.
2. 제목과 본문 사이에 빈 줄이 요구되며, 각 줄은 72자를 넘지 않아야 한다.
⚡️ 바닥글(Footer)
바닥글 또한 선택사항(optional)이다.
1. 이슈 트래커 ID, 참고 자료, 주의사항 등을 추가로 기록할 때 사용한다.
2. keyword #issue_number 의 형태로 작성한다.
일반적인 키워드 유형 : Fixes, Closes, Refs 등...
예시)
Fixes #123 : 해당 커밋이 123번 이슈를 완전히 해결함
Closes #456 : PR(Pull Request) 또는 이슈를 닫음
Refs #789 : 789번 이슈와 연관된 작업이지만, 완전히 해결하지 않음(참고나 연관성 기록)
커밋 컨벤션은 '이거 아니면 안 돼!' 하는 정해진 규율이라기보다는 협업과 관리를 위해 사용하는 약속이다. (해당 커밋 컨벤션도 Udacity Git Commit Message Style Guide 기준으로 작성되었듯이!) 따라서 회사마다, 혹은 프로젝트마다 다를 수 있기 때문에 팀의 합의와 프로젝트의 목적에 맞게 유연하게 설정하여 커밋 메시지를 작성하면 될 것 같다.
아래는 이모지를 활용하여 커밋 메시지를 작성하는, Gitmoji (Git + Emoji)에 관련된 글이다. 이것도 참고하면 좋을 것 같다!
Gitmoji 사용하기
Gitmoji란? gitmoji란? Gitmoji = git + emoji 입니다. 글을 쓸 때 이모지를 이용하면, 나중에 글을 읽을때 명확합니다. 👍 커밋할 때도 이모지를 이용한다면, 내용을 한 눈에 알아보기 더 쉽겠죠. 그래서
treasurebear.tistory.com
* 참고했던 자료 혹은 블로그(출처):
[Udacity] Udacity Git Commit Message Style Guide
Udacity Nanodegree Style Guide
Introduction This style guide acts as the official guide to follow in your projects. Udacity evaluators will use this guide to grade your projects. There are many opinions on the "ideal" style in the world of development. Therefore, in order to reduce the
udacity.github.io
[보배곰 (나를 남기다)] 님의 자료
Gitmoji 사용하기
Gitmoji란? gitmoji란? Gitmoji = git + emoji 입니다. 글을 쓸 때 이모지를 이용하면, 나중에 글을 읽을때 명확합니다. 👍 커밋할 때도 이모지를 이용한다면, 내용을 한 눈에 알아보기 더 쉽겠죠. 그래서
treasurebear.tistory.com
[const_p (Plus Ultra)] 님의 자료
[협업] 협업을 위한 git 커밋컨벤션 설정하기
들어가며어떻게 하면 협업을 더 잘할 수 있을까 고민하며 협업에 필요한 내용들을 계속 정리하고 있습니다. 앞으로 저와 함께 협업하는 팀원분들에게 도움이 되고 싶습니다. 이 글은 Udacity Git Co
overcome-the-limits.tistory.com
[신세원 (내일의 나는 오늘의 내가 만든다.)] 님의 자료
Git | git 커밋 컨벤션 설정하기
개발자로 시작한지 얼마 안되고 나서, 첫 직장은 지금도 다니고 있는 모든것을 처음부터 새로 시작하는 스타트업이다.프론트엔드는 작성자 혼자 뿐이었고, 아무것도 모르는 주니어 개발자가 하
velog.io
네이버 블로그에 작성한 게시글 이전, 2024. 11. 22. 작성