git

Git Commit Convention

해니01_15 2024. 9. 6. 09:08

최근에 프로젝트를 하다가 git commit convention이라는 걸 알게 되었다. 

그전에는 그냥 내가 한 '페이지 명 + 처리 한 것'  이렇게 commit messeage 를 작성 했었는데 작업자가 10명, 100명 이렇게 늘어나게 되면  유일한 식별자를 구별하기 어려워 진다는 단점이 있어 잘 지켜야 한다고 한다. 

 

[conventionalcommits.org]

아래는 커밋 메세지 컨벤션 관련하여 자세하게 적힌 사이트다. 

 

Conventional Commits

커밋 메시지에 사용자와 기계 모두가 이해할 수 있는 의미를 부여하기 위한 스펙

www.conventionalcommits.org

위의 사이트를 기반으로 commit convention을 작성하는 방법에 대해 알아보자 

 

 

[commit type] 

그 전에 우리는 여러가지의 commit type을 알아야 한다. 

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • docs : 문서 작성
  • style : 코드 변경 없는 단순 수정(오타 수정, 세미콜론 추가 등)
  • refactor : 리팩토링
  • test : 테스트 코드
  • chore : 유지보수 및 빌드

 

[기본 포맷]

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

 

<type> 은 위에 있던 commit type 에 해당 한다. 

<description>  은 변경 된 코드에 관한 짧은 요약 같은 것이다. 

[body] 는 선택사항으로 <description> 에는 기재하지 못한 조금 더 상세한 설명을 써야 할 때 사용한다. 

[footer] 도 선택사항으로 코드 작업과 관련 된 이슈 번호 또는 참조 링크 같은 걸 첨부하는데 사용 된다. 특정 작업이나 이슈를 해결 한 경우에는 'Closes #이슈 번호' 와 같은 형태로 작성 하여 마무리 한다. 

 

 

[커밋 메세지 예시] 

feat: 사용자가 회원가입할 수 있는 기능 추가

- 이메일 인증을 통한 회원가입 기능 구현
- 회원가입 시 비밀번호 암호화 추가
- 회원가입 성공 시 환영 이메일 발송

Refs: #123
fix: 이미지 업로드 시 발생하는 버그 수정

- 파일 확장자 체크 로직 수정
- 파일 크기 제한 관련 에러 메시지 추가

Closes: #456
style: 코드 포맷팅 및 불필요한 공백 제거

- 전체 코드에서 불필요한 공백 제거
- 함수 간격 조정 및 들여쓰기 수정
style: 코드 포맷팅 및 불필요한 공백 제거

- 전체 코드에서 불필요한 공백 제거
- 함수 간격 조정 및 들여쓰기 수정
test: 로그인 기능 테스트 추가

- 정상 로그인 및 실패 시나리오 테스트 케이스 작성
- JWT 토큰 발급 테스트 추가