Skip to content

커밋 스타일 가이드

Donghwan edited this page Nov 10, 2019 · 9 revisions

커밋 스타일 가이드

Format

 [server ? client] | <type>(<scope>): <subject>
 <BLANK LINE>
 <body>
 <BLANK LINE>
 <Fixes>(optional) <link>
 <BLANK LINE>
 [참조]
 - https://url
  • server 와 client 둘 다 포함 될 경우 [server & client] 로 작성한다.

Example

ex)
backend | feat(auth): Table Manager 구현
 
express-session을 이용하여 세션테이블 매니저를 구현했습니다.

Fixes https://github.com/plone/PACKAGE/issue/42

[참조]
- www.link.com
  • subjectbody를 한글로 작성하고, 그 외엔 영어로 작성합니다.
  • type : 어떤 의도로 커밋했는지를 type에 명시합니다. 자세한 사항은 아래서 설명 참조
  • scope : 커밋의 대상이 되는 것을 명시
  • subject : 최대 50글자가 넘지 않도록 하고 마침표는 찍지 않음
  • body : 최대한 작성합니다. HOWWHY 위주로 작성합니다. ~합니다 라는 문체로 작성합니다.
  • issue: 이슈에 대한 상세한 설명이 필요한 경우 해당 이슈의 링크를 첨부
  • 참조: 해당 커밋을 작성하기 위해 참고한 링크를 첨부

타입 type

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • docs : 문서의 수정
  • style : (코드의 수정 없이) 스타일(style)만 변경(들여쓰기 같은 포맷이나 세미콜론을 빼먹은 경우)
  • refactor : 코드를 리펙토링
  • test : Test 관련한 코드의 추가, 수정
  • chore : (코드의 수정 없이) 설정을 변경

스코프 scope

  • 글로벌일 경우 feat() 와 같이 빈 괄호를 이용한다.
  • client는 페이지 별로 그 scope를 제한한다. ex) [client] | feat(login): 로그인 페이지 구현
  • server의 경우 모듈단위로 그 scope를 제한한다. 단, module 이 존재하지않는 경우 그 하위 scope로 제한한다. ex) [server] | feat(login): 로그인 인증 기능 구현

참조

RFC: Git Commit Message Guidelines

Clone this wiki locally