[Git] Git Commit Convention, 깃 커밋 컨벤션

se_niii·2024년 4월 18일
0

그 외

목록 보기
3/6

서론

자소서, 면접 준비 과정에서 이전에 개발했던 프로젝트를 되돌아 볼 때, '커밋 메시지를 왜 이렇게 작성했지...', '이건 뭘 개발한거지...' 라고 느끼는 부분이 많았다.

그 때 당시에는 내가 구현/수정한 내용을 충분히 다 담아서 커밋 메시지를 작성했다고 생각했지만, 나중에 시간이 지나고(지금ㅋ) 나서 보니 아니었다는 것을 깨달았다... 😭

또한, 나 혼자 개발한 프로젝트 말고, 팀 프로젝트할 때는 왜 컨벤션을 정하지 않았던 걸까?라는 생각도 들었다.
➡️ 지금 생각해보면 그 이유는 팀원들이 각자 원하는 방식으로 커밋 메시지를 작성해도 이해할 만한 수준의 작은 프로젝트 였기 때문이었던 것 같다.
🥵 그리고,, 커밋 컨벤션도 정하지 않을 만큼 팀원 모두가 개발 문화를 잘 몰랐던 것 같기도 하다.

앞으로 취업해서 다른 팀원들과 일 할때에는 커밋 컨벤션을 지켜야하기 때문에 깃 커밋 컨벤션을 정리해보자-! 라는 다짐을 하였다.


  • 커밋 메시지 컨벤션은 정의하기 나름이겠지만, 보통 Udacity Style을 많이 사용한다.

1. Commit 메시지 구조

기본 적인 커밋 메시지 구조는 제목, 본문, 꼬리말 세가지 파트로 나누고, 각 파트는 빈줄을 두어 구분한다.

type: subject

body

footer



2. Commit Type

타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되 첫 문자는 대문자로 한다.

태그: 제목의 형태이며, : 뒤에만 space가 있다.

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • docs : 문서 수정
  • style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • refactor : 코드 리펙토링
  • test : 테스트 코드, 리펙토링 테스트 코드 추가
  • chore : 빌드 업무 수정, 패키지 매니저 수정



3. Subject

  • 제목은 최대 50글자가 넘지 않도록 한다. 마침표 및 특수 기호는 사용하지 않는다.
  • 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고, 첫 글자는 대문자로 표기한다. 과거 시제를 사용하지 않는다.
  • 제목은 개조식 구문으로 작성한다. --> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미.
* Fixed --> Fix
* Added --> Add
* Modified --> Modify

subject를 영어로 작성할 경우, 아래와 같은 동사원형 사용

  • Add : 추가
  • Remove : 삭제
  • Simplify : 단순화
  • Update : 보완
  • Implement : 구현
  • Prevent : 방지
  • Move : 이동
  • Rename : 이름 변경



4. Body

본문은 다음의 규칙을 지킨다.

  • 본문은 한 줄 당 72자 내로 작성한다.
  • 본문 내용은 양에 구애받지 않고 최대한 상세히 작성한다.
  • 본문 내용은 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명한다.



꼬릿말은 다음의 규칙을 지킨다.

꼬리말은 optional이고 이슈 트래커 ID를 작성한다.

  • 꼬리말은 "유형: #이슈 번호" 형식으로 사용한다.
  • 여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분한다.
  • 이슈 트래커 유형은 다음 중 하나를 사용한다.
    • Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
    • Resolves: 이슈를 해결했을 때 사용
    • Ref: 참고할 이슈가 있을 때 사용
    • Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
      ex) Fixes: #45 Related to: #34, #23



6. Commit 예시

Feat: "회원 가입 기능 구현"

SMS, 이메일 중복확인 API 개발

Resolves: #123
Ref: #456
Related to: #48, #45





출처
Git | git 커밋 컨벤션 설정하기
Git Commit Convention, 깃 커밋 컨벤션

0개의 댓글