새소식

프론트엔드 공부/DOM

[git] 보기 좋은 commit message 작성법

  • -

좋은 git Commit Message 작성 가이드라인

평소 커밋 메세지를 어떻게 작성해야하나 항상 고민이였는데 찾아보다가 깔끔한 가이드라인이 있어 공유해보고자 한다.😀

기존 커밋은 "작성파일-코드 작성내용" 으로만 작성을 해왔다. 개인 기록용이라면 이정도로도 충분하지만, 여러 사람이 협업을 하게되면 보다 명확한 가이드라인이 필요할것이다.

Ailbaba Fusion commit
NHN tui.calendar commit

위 사진은 Alibaba Fusion의 Next 레포지토리와 NHN의 tui.calendar 레포지토리에서 가져온 커밋 히스토리인데 두 커밋 히스토리가 유사한 형태를 띄고 있는 것을 보실 수 있다.

가장 많이들 사용하는 좋은 커밋 메세지를 작성하기 위한 방법을 알아보자면, 아래와 같이 작성을 한다.


기본 규칙

  • 명확하고 간결한 제목 작성:
    커밋 메시지의 첫 줄에는 명확하고 간결한 제목을 작성하는 것이 좋다. 이는 커밋 내용의 간략한 요약으로, 영문 기준 50자 이내로 작성하는 것이 좋다.
  • 본문 작성:
    커밋 제목 아래에는 커밋의 상세 내용을 설명하는 본문을 작성할 수 있다. 이때, 한 줄 당 72자 이내로 작성하며, 변경 사항에 대한 자세한 내용을 포함할 수 있다.
  • 명령어 시제 사용:
    커밋 메시지에 사용되는 동사는 명령어 시제를 사용하는 것이 좋다. 예를 들어, "Add feature"나 "Fix bug"와 같이 구체적으로 작성하는 것이 좋고 과거형으로 작성은 지양한다.
  • 관련 이슈 번호 포함:
    만약 해당 커밋이 어떤 이슈나 이슈들과 연관되어 있다면, 커밋 메시지에 이슈 번호를 포함하는 것이 좋다. 이를 통해 어떤 이슈와 연관된 커밋인지 쉽게 파악할 수 있다.
  • 올바른 작성자 정보 포함: 커밋 메시지에는 올바른 작성자 정보를 포함하는 것이 좋다. 이는 보통 git 설정에서 설정할 수 있으며, 작성자 정보가 올바르지 않으면 다른 개발자들이 커밋의 출처를 파악하는 것이 어렵다.

Commit Message 구조

type(타입) : title(제목)

body(본문, 생략 가능)

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

See also : #issueNo, ...(참고 이슈, 생략 가능)
커밋 예시) 타입 : 본문내용 (#이슈)
fix(Card): fix css style naming,close #3930 (#4237)

feat: use big.js instead of bignumber.js, for smaller bundle size (#3946)

fix(Tab): config active line padding

feat(Transfer): transfer support different search config between pane…

Type 키워드

Type 키워드 사용 시점
feat 새로운 기능 추가
fix 버그 수정
docs 문서 수정
style 코드 스타일 변경 (코드 포매팅, 세미콜론 누락 등)
기능 수정이 없는 경우
design 사용자 UI 디자인 변경 (CSS 등)
test 테스트 코드, 리팩토링 테스트 코드 추가
refactor 코드 리팩토링
build 빌드 파일 수정
ci CI 설정 파일 수정
perf 성능 개선
chore 빌드 업무 수정, 패키지 매니저 수정 (gitignore 수정 등), 설정을 변경(코드의 수정 없이)
rename 파일 혹은 폴더명을 수정만 한 경우
remove 파일을 삭제만 한 경우

대부분 가장 많이 사용하는 것은 feat와 fix이다. style, design처럼 로직적인 변화가 없을 경우에 커밋 메세지에 명시해주는 것만으로도 추후 오류를 찾을 때 많은 도움이 된다.

타입 뒤에 변경된 함수나 메소드를 직접적으로 명시하기도 한다. ex) fix(tab): ...

관련 이슈(옵션)

사용 시점 사용 키워드
해결 Closes(종료), Fixes(수정), Resolves(해결)
참고 Ref(참고), Related to(관련), See also(참고)

관련 이슈 언급은 선택사항이다. 사용 키워드는 위와같이 다양하며, 팀에서 지정한 키워드를 사용한다.


위에서 내용을 참고해서 커밋을 작성하도록 노력하는 모습..

커밋 작성해보기

참고
[Git] 깃 커밋 메시지 작성법(git commit message)
느낌 있는 Commit Message 작성하기
Git Commit Message 규칙

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.