Git convention: 자유로운 git commit 메시지 세계에도 규칙을

“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 스위치를 사용해서 입력하기는 어렵습니다.
적합한 편집기를 사용하여 편집을 진행하여야 합니다.
해당 내용은 다음 포스트를 참고해 주세요.

참고하면 좋은 글

Leave a Comment

목차