루밀LuMir's GitHub profile image
PLAY KEYBOARD, STRIKE A CODE🎨

Git Commit Message 규칙

팀원과의 소통, 편리한 과거 기록의 추적을 위해 규칙에 맞는 Commit Message를 작성하는 것이 중요하다.

1. Commit Message의 7가지 규칙

  1. TitleBody를 빈 행으로 구분한다.
  2. Title은 영문 기준 50글자 이내로 제한한다.
  3. Title의 첫 글자는 대문자로 작성한다.
  4. Title 끝에는 마침표를 넣지 않는다.
  5. Title은 명령문으로 사용하며 과거형을 사용하지 않는다.
  6. Body의 각 행은 영문 기준 72글자 내로 제한한다.
  7. 어떻게 보다는 무엇과 왜를 설명한다.

2. Commit Message 구조

# Header, Body, Footer는 빈 행으로 구분한다.

Type(Scope): Title # Header

Body # Body

Footer # Footer

2-1. Header

  • Header는 필수이다.

  • Type은 해당 Commit의 성격을 나타내며, 아래 중 하나여야 한다.

    Type내용
    build빌드 관련 파일 수정. 모듈 설치 또는 삭제.
    chore패키지 매니저, .gitignore 등 여러가지 자잘한 수정.
    ciCI 관련 설정 파일 수정.
    design사용자 UI 디자인(CSS 등) 변경.
    docs문서 수정.
    feat새로운 기능.
    fix버그 수정.
    perf성능 개선.
    refactor코드 리팩토링.
    remove파일을 삭제만 한 경우.
    rename파일 혹은 폴더명을 수정만 한 경우.
    style기능 수정 없는 코드 스타일(포맷팅) 변경.
    test테스트 코드 추가 및 수정.
  • Scope는 생략 가능하다.

  • Title에는 제목, 주제를 입력한다.

2-2. Body

Body는 본문으로, Header에서 표현할 수 없는 상세한 내용을 적는다.

Header에서 충분히 표현할 수 있다면 생략 가능하다.

2-3. Footer

Resolves(Closes, Fixes): #IssueNo, ... (해결한 이슈, 생략 가능)

See also(Ref, Related to): #IssueNo, ... (참고한 이슈, 생략 가능)

Footer는 바닥글로 생략 가능하다.

어떤 Issues에서 왔는지 등의 참조 정보들을 추가하는 용도로 사용한다. 예를 들어, 특정 Issues를 참조하려면 Resolves: #1137 와 같이 작성한다.

3. Commit Message 여러 줄 입력

-m 옵션을 사용한다. 이는 vim에서 별도의 메세지를 작성할 필요없이, 명령창에서 바로 인라인 형식으로 Commit Message를 작성할 수 있게 해준다.

3-1. 한 줄

$ git commit -m "Commit Message"

3-2. 여러 줄

Commit Message의 첫 줄에 '닫는 따옴표'를 넣지 말고, 마지막 줄에 사용한다. 즉, 첫 줄에 '여는 따옴표'만을 넣고 엔터를 누르면 개행이 되며, 저장되는 것이 아니라 계속해서 입력 가능하다.

$ git commit -m "Commit Message 1st Line
> Commit Message 2nd Line
> Commit Message 3rd Line
> ...
> Commit Message Last Line"

4. Commit Message 예시

$ git commit -m "fix: Safari에서 모달을 띄웠을 때 스크롤 이슈 수정
>
> 모바일 사파리에서 Carousel 모달을 띄웠을 때,
> 모달 밖의 상하 스크롤이 움직이는 이슈 수정.
>
> Resolves: #1137"

Ailbaba Fusion commit
NHN tui.calendar commit

Reference