[Git] Commit message 규칙

이성민·2024년 11월 16일
post-thumbnail

Commit message의 중요성

(1) 프로젝트의 히스토리를 관리

  • 커밋 메시지는 변경사항에 대한 기록입니다.
  • 시간이 지나더라도 왜, 무엇을, 어떻게 수정했는지 쉽게 이해할 수 있게 해줍니다.
  • 버그가 발생했을 때 과거의 변경사항을 검토하여 원인을 추적하거나 디버깅하는 데 도움을 줍니다.

(2) 협업에 도움

  • 팀원 간의 의사소통 도구 역할을 합니다.
  • 다른 개발자가 코드를 리뷰하거나 프로젝트를 이해할 때, 잘 작성된 커밋 메시지를 통해 변경 목적을 쉽게 이해할 수 있습니다.

(3) 프로젝트 유지보수 용이

  • 시간이 지난 후에도 변경 이유를 명확히 알 수 있어 유지보수 및 기능 추가가 수월해집니다.

Commit message의 구조

- 기본 구조

commit message는 제목, 본문, 꼬리말로 구성합니다.

타입(Type): 제목(Subject)

본문(Body)

꼬리말(Footer)

- Type

해당 커밋은 무엇에 대한 작업인지 키워드를 통해 표시합니다.

  • feat : 새로운 기능 추가

  • fix : 기능에 대한 버그 수정

  • build : 빌드 관련 수정

  • chore : 패키지 매니저 수정, 그 외 기타 수정
    ex) .gitignore

  • ci : CI 관련 설정 수정

  • docs : 문서(문서 추가, 수정, 삭제)

  • style : 코드 스타일, 포맷팅에 대한 수정

  • refactor : 기능의 변화가 아닌 코드 리팩터링
    ex) 변수 이름 변경

  • test : 테스트(테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없는 경우)

  • release : 버전 릴리즈


- Subject

커밋 메시지의 제목입니다.

규칙:

  • 제목은 50자를 넘기지 않고, 마침표를 붙이지 않습니다.
  • 제목에 커밋 타입을 함께 작성합니다.
  • 과거 시제를 사용하지 않고 명령조로 작성합니다.
  • 제목과 본문은 한 줄 띄워 분리합니다.
  • 제목의 첫 글자는 반드시 대문자로 씁니다.
  • 이슈에 관련된 내용이라면 이슈 번호를 붙힙니다.

- Body

커밋 메시지의 본문입니다.

  • 선택 사항이므로 모든 커밋에 작성할 필요는 없습니다.
  • 한 줄에 72자를 넘기면 안 됩니다.
  • 어떻게(how)보다 무엇(what), 왜(why)에 집중하여 내용을 작성합니다.
  • 설명뿐만 아니라 커밋의 이유를 작성할 때도 작성합니다.

커밋 메시지의 꼬리말입니다.

  • 선택 사항이므로 모든 커밋에 작성할 필요는 없습니다.
  • 이슈를 추적하기 위한 ID를 추가할 때 사용합니다.
    해결 - 해결한 이슈 ID
    관련 - 해당 커밋에 관련된 이슈 ID
    참고 - 참고할만한 이슈 ID

이슈 참조의 기본 형식

Github에 이슈가 있어야 작동합니다.

1) 해결 키워드 (Closing Keywords)
커밋 또는 PR이 이슈를 완전히 해결하면 자동으로 닫히도록 설정할 수 있습니다.
(키워드 : colse, resolves, fix 등등..)

예:

git commit -m "Fix typo in footer text, colse #123"

효과: PR이 main 브랜치에 머지될 때 #123번 이슈가 자동으로 닫힙니다.


2) 관련 키워드 (Related Issues)
이슈가 커밋 내용과 관련은 있지만, 아직 해결되지 않은 경우 사용합니다.
(키워드: relate, relates, related)

예:

git commit -m "Add preliminary API tests, relates #456"

효과: #456번 이슈와 관련이 있지만, 이슈가 닫히지는 않습니다.


3) 참고 키워드 (References)
이슈를 해결하거나 직접적으로 관련되지는 않지만, 참고 목적으로 명시할 때 사용합니다.
(키워드: refer, refers, references)

예:

git commit -m "Update README, references #789"

효과: #789번 이슈를 단순히 참고합니다. 닫히지도 않고 관련 여부도 나타내지 않습니다

0개의 댓글