“Git convention”은 협업에서 일관성 있고 효율적인 작업을 위한 관례입니다.
반드시 따라야 하는 문법은 아니지만 팀원들 간의 원활한 협업을 위해 일정한 규칙을 정하는 것입니다.
이는 코드 변경 사항, 커밋 메시지를 일관되게 관리하여 코드의 가독성을 높이고 작업 이력을 추적하기 쉽게 만들어 줍니다.
Git commit message 구조
git 커밋 메시지의 기본 구조는 제목, 본문, 꼬리말로 구성되어 있습니다.
제목(subject)
본문(body)
꼬리말(footer)
제목 (Title):
커밋의 목적을 간결하고 명확하게 나타내는 한 줄의 요약입니다. 보통 50자 이내로 작성하며, 동사 원형으로 시작하여 목적을 나타냅니다.
Feat: 새로운 회원 가입 기능 추가
Fix: 로그인 페이지 오류 수정
Docs: 사용 설명서 업데이트
Style: 코드 스타일 일관성 유지
Test: 회원 가입 기능에 대한 유닛 테스트 추가
Refactor: 로그인 관련 함수 재구성
Perf: 데이터베이스 쿼리 최적화
본문 (Body):
제목 아래에 나오는 자세한 설명으로, 변경사항의 이유나 배경, 어떻게 해결되었는지 등을 자세히 기술합니다.
필수는 아니지만, 좀 더 자세한 커밋에는 유용합니다.
This commit addresses the issue by updating the authentication logic in the login page.
Now, user credentials are verified against the new authentication server, resolving the login problem reported in issue #123.
꼬리말 (Footer):
선택적으로 사용되며, 이슈 트래커 ID를 추가하거나 커밋과 관련된 이슈를 닫는 등의 추가 정보를 포함할 수 있습니다.
Resolves: #123
Ref: #12
Related to: #32, #41
Git convention (제목)
커밋 제목은 커밋유형: 제목
형태로 작성합니다.
변경사항이 “무엇”인지 명확하게 기술합니다.
커밋 유형의 첫 글자는 대문자로 작성합니다.
콜론 뒤에는 공백을 한 번 추가하고, 마침표 및 특수 기호를 사용하지 않습니다.
명령조로 작성하고, 50자 이내로 간결하게 표현합니다.
영문으로 작성하는 경우, 첫 글자는 대문자로 시작하며 동사(원형)을 가장 앞에 명령어로 작성합니다.
- 예시:
- Added → Add
- Modified → Modify
이러한 작성 규칙을 준수하면 커밋 메시지가 명확하고 가독성이 좋아지며, 변경 내용을 빠르게 파악할 수 있습니다.
commit 유형
커밋 유형 | 설명 |
---|---|
Feat | 새로운 기능의 추가 |
Update | 원래 정상 동작하나 보완이 필요한 경우 |
Fix | 버그 수정 |
Correct | 타입 변경, 이름 변경 등에 사용 |
Docs | 문서 수정 |
Comment | 필요한 주석 추가 및 변경 |
Style | 코드 포맷팅, 세미콜론 누락, 코드 변경 없이 스타일 관련 기능 |
Refactor | 코드 리펙토링 |
Test | 테스트 코드 추가, 리펙토링 테스트 코드 추가 |
Design | 사용자 UI 디자인 변경 |
Rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만 수행한 경우 |
Remove | 파일을 삭제하는 작업만 수행한 경우 |
BREAKING CHANGE | 커다란 API 변경의 경우 |
HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 |
Prevent | 특정 기능을 막음 |
Avoid | 특정 현상을 회피함 |
Perf | 성능 향상 |
Chore | 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 등) |
BREAKING CHANGE, HOTFIX
와 같이 중대하거나 긴급한 변경은 모두 대문자로 표기하거나 !(느낌표)를 사용하는 경우가 많은 것 같습니다!
Git convention (본문)
본문은 {타입}(적용범위): 메세지로 표현할 수 없는 상세한 내용을 적는 부분입니다.
72 이내로 작성합니다.
선택사항이기 때문에 간단한 내용의 커밋에는 본문을 작성하지 않아도 됩니다.
최대한 상세히 작성합니다. (코드 변경의 이유를 명확히 작성할수록 좋습니다.)
어떻게 변경했는지 보다 무엇을, 왜 변경했는지 작성합니다.
Git convention (꼬리말)
선택사항 입니다
issue tracker ID 명시하고 싶은 경우에 작성합니다.
유형: #이슈 번호 형식으로 작성합니다.
여러 개의 이슈번호는 쉼표(,)로 구분합니다.
이슈 트래커 유형은 다음 중 하나를 사용합니다.
- Fixes: 이슈 수정 중 (아직 해결되지 않은 경우)
- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
ex) Fixes: #45 Related to: #34, #23
commit 메시지 예시
예시 1
Fix: 버그 수정
로그인 페이지 오류 수정
Resolves: #456
Ref: #78
예시 2
Docs: 문서 수정
프로젝트 README 업데이트
Resolves: #789
Ref: #54
Git 편집기 설정
여러 행으로 구성된 커밋 로그를 -m 스위치를 사용해서 입력하기는 어렵습니다.
적합한 편집기를 사용하여 편집을 진행하여야 합니다.
해당 내용은 다음 포스트를 참고해 주세요.