찬환
천천히 꾸준하게
찬환
전체 방문자
오늘
어제
  • 분류 전체보기 (19)
    • Problem Solving (2)
      • BOJ (2)
    • Algorithm (3)
    • Java (1)
    • CS (7)
      • 컴퓨터구조 (3)
      • 운영체제 (2)
      • 데이터베이스 (2)
    • Web (0)
    • Spring (1)
    • Git (2)
    • 북스터디 (2)
      • 이펙티브 자바 (2)
    • Tech Stack (0)
    • 끄적끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • cs
  • 브랜치 전략
  • 이펙티브자바
  • 컴퓨터의_구성요소
  • 주사위굴리기
  • git flow
  • 빌더패턴
  • 컨텍스트_스위칭
  • java.util.arrays
  • ITEM_2
  • 이펙티브 자바
  • BOJ_2580
  • 프로세스_메모리_구조
  • effective_java
  • 폰노이만구조
  • SpringBoot
  • backtracking
  • Arrays메서드
  • Arrays정리
  • Udacity_git_commit_message_style_guide
  • B형 후기
  • Spring Ecosystem
  • 삼성 B형
  • Key의 종류
  • Boj_14499
  • 알고리즘
  • 정적팩터리메서드
  • BOJ
  • 삼성SW역량
  • 운영체제

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
찬환

천천히 꾸준하게

커밋 메시지 가이드 (Udacity Git Commit Message Style Guide)
Git

커밋 메시지 가이드 (Udacity Git Commit Message Style Guide)

2022. 11. 6. 02:01
728x90

Intro

프로젝트를 진행하다 보면 자연스럽게 git으로 코드관리를 하게 된다.

프로젝트의 기능을 구현하면 commit을 하게 되는데, 이 때 작성하는 commit 메시지가 일관성 있고, 내용을 봤을 때 직관적으로 알아볼 수 있어야한다.

 

유다시티의 커밋 메시지 스타일 가이드는 커밋 메시지를 다른 사람과 협업 시 통일성과, 체계적인 커밋 메시지 스타일을 제시했는데, 이를 다시 한번 정리하고자 이 글을 작성하기로 했다.

 

Udacity Git Commit Message Style Guide
https://udacity.github.io/git-styleguide/

 

Message 구조

유다시티 커밋 메시지 가이드는 커밋 메시지를 제목, 본문, 꼬리말 세 부분으로 나누어 구성한다.

type : subject

body

footer

제목의 경우 type 과 subject 로 구성되다.

본문인 body와 꼬리말인 footer의 경우 선택적인 입력사항으로 제목에 전달하고자 하는 내용이 모두 담겼다면 작성하지 않아도 된다.

 

 

type

type은 제목에 포함되어 있으며, 다음과 같은 유형이 있다.

  • feat : 새로운 기능
  • fix : 버그 수정
  • docs : 문서 변경 사항
  • style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • refactor : 코드 리팩토링
  • test : 테스트 코드 추가, 테스트코드 리팩토링 (프로젝트의 코드 변경은 없어야 함)
  • chore : 빌드 작업 업데이트, 패키지 매니저 수정 (프로젝트의 코드 변경은 없어야 함)

subject

subject 또한 제목에 포함되어 있다.

subject는 50자 이하여야 하고, 첫 문자는 대문자로 시작해야 하고, 마침표로 끝나지 않아야 한다.

 

커밋이 무엇을 했는지 서술형으로 설명하는 대신 명령형을 사용하여 커밋이 하는 일을 설명해야 한다. (요점만 간결히 작성)

body

모든 commit이 body를 작성해야 할 만큼 복잡하지는 않기 때문에 body의 작성은 선택사항이다.

작성할 경우 커밋에 약간의 설명과 맥락이 필요한 경우에만 사용한다.

  • 어떻게 변경했는지보다 무엇을 왜 변경했는지를 작성한다.
  • 제목과 본문 사이에는 빈 줄이 있어야 한다.
  • 각 줄의 길이는 72자 이내로 작성해야 한다.

footer

footer는 이슈 트래커 ID (issue tracker ID)를 참조하고자 할 때 작성한다.

이 또한 body와 마찬가지로 선택사항에 해당한다.

 

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

IntelliJ IDEA 에서 git commit template 플러그인 사용하기

위 커밋 메시지 가이드를 알고 써야겠다고 해도 매번 어떤 type이 있는지, 규칙은 무엇인지 매번 찾아서 사용하기에는 귀찮기도 하고 무리가 있을 것이다.

 

commit message 템플릿을 만들어 git에 직접 등록하는 방법도 있겠지만,

인텔리제이 IDE를 사용한다면 commit message plugin 을 설치하여 보다 쉽게 커밋 메시지를 작성할 수 있다.

(자바 계열이 아닌 다른 IDE라도 jetbrain 계열의 IDE라면 동일한 플러그인이 있을 것이다.)

 

플러그인 설치

설정 - 플러그인 - 마켓플레이스 에서 Git Commit Template을 검색하여 설치하면 바로 사용할 수 있다.

192.7K 의 다운로드 수를 가질 만큼 많은 개발자들이 사용하고 있는 것을 볼 수 있다.

사용

커밋 탭에 들어가면 아래 부분에 새로운 아이콘이 생겼다.

 

저 버튼을 누르게 되면 위와 같은 템플릿이 만들어 진다.

udacity의 커밋 메시지 가이드보다 더 다양한 type을 제공한다.

 

각 항목에서 작성할 것을 커밋 메시지 가이드의 형식으로 나타내면 아래와 같다.

Scope of this change : scope
Short description : subject
Long description : body
Breaking changes : footer
Closed issues : footer

메시지를 작성하면 아래와 같이 렌더링 될 것이다.

<type>(<scope>): <subject>

<body>

<footer>

사용 예시

메시지를 작성하고 OK를 누르면 아래와 같이 자동으로 템플릿이 생성되는 것을 볼 수 있다.

마치며

커밋 메시지를 그동안 자유분방(?) 하게 작성했었는데, 앞으로 컨벤션 가이드를 따라 작성하는 방식에 익숙해져야 할 것 같다.

IDE에서 제공하는 기능들 중에 강력한 기능들이 많은 것 같다. (많이 활용하자)

728x90

'Git' 카테고리의 다른 글

Git Flow 란? - git 의 브랜치 전략에 대하여  (0) 2023.04.07
    'Git' 카테고리의 다른 글
    • Git Flow 란? - git 의 브랜치 전략에 대하여
    찬환
    찬환
    공부한 내용을 포스팅하는 IT 기술블로그입니다.

    티스토리툴바