내가 공부하려고 올리는/IT 잡다

깃 커밋 메시지 컨벤션(Git Commit Message Convention)

결딴력 2021. 12. 28. 15:21
반응형

개인적으로 공부하면서

몇 개의 정말 소소한..

작고 소중한.. 개인 프로젝트를 진행했었는데

이러한 프로젝트는 모두

'깃으로 형상관리를 해야지~~'라는

원대한 목표화 함께 깃허브에 업로드해두었습니다.

 

하지만 지금도 잘못하지만

이제 와서 깃과 깃허브에 대한 공부를 조금이라도 하고 보니

얼마나 묘상한 커밋을 해왔는지 느낄 수 있었습니다..

 

살짝 수치스러운 느낌이라

누군가 볼까 부끄러운..

 

다시 돌이켜보니

저는 깃을 이용해 제 토이 프로젝트의 '형상 관리'를 했다기보단

그냥 깃과 깃허브를 제가 이만큼 했다고 어필하기 위한 '저장소'쯤으로 활용한 것 같습니다.

 

토이 프로젝트를 진행했을 때는

너무나 미숙해서 어느 부분까지 끊어서 커밋해야 하고

어느 부분까지가 연결되는 내용인지를 파악하지 못해서 그랬던 것 같아요

(물론 지금도 모릅니다!)

이러한 미숙한 커밋 역사도 제 성장의 기록으로는 의미 있다고 생각합니다. 😂

 

하지만 이런 미숙함이 의미 있으려면

전에 비해 성장한 모습을 보여주는 것이 포인트이기 때문에

오늘은 깃의 커밋 규칙이라고 볼 수 있는

'깃 커밋 메시지 컨벤션'에 대해 알아보려고 합니다.

 

제목에서도 알 수 있듯이 컨벤션(Convention), 즉 '관습'입니다.

모두가 따르는 '규칙'은 아니지만

모든 개발자들이 일정 부분 따르는 관습이기 때문에

이러한 컨벤션에 따라 커밋 메시지를 작성하는 것이

후에 협업에 있어서 타개발자와 협업하는데 있어서 큰 도움을 줄 것이라고 생각합니다.

 

 

 


커밋 메시지 구조
😀 [타입(type)] : 제목(subject)
😀 본문(body)
😀 푸터(footer)

 

위 구조는 가장 흔히 쓰이는 커밋 구조로

유다시티의 스타일을 참고한 것이다.

 

타입
😀유다시티에서는 7개 종류의 타입의 사용을 권장하고 있다.

 

타입 종류

  1. feat : 새로운 기능 추가
  2. fix : 오류 수정
  3. docs : 문서 관련 수정
  4. style : 코드의 변화하지 않는 수정 ex) 세미콜론(;), 들여 쓰기
  5. refactor : 코드의 리팩터링
  6. chore : 빌드 혹은 패키지 매니저 수정사항
  7. test : test 코드 삽입 및 수정

 

제목
😀 제목은 가능한 간결하게 50자 내로 작성한다.
😀 제목의 시작은 대문자로 작성한다.
😀 제목은 동사 단어로 작성을 시작하고 명령문으로 작성한다.
😀 제목에는 마침표를 사용하지 않는다.

 

제목에 자주 쓰이는 동사 단어

 

FIX 

  • ex) Fix git, Fix error
  • in으로 수정 위치를 나타낼 수 있다.
    ex) Fix typo in git.java
  • to/for로 수정 이유를 나타낼 수 있다.
  • when을 통해 어느 상황에서 발생한 에러를 수정했는지 나타낼 수 있다.

 

ADD

  • 코드나 문자를 추가할 때 사용한다.
  • for이나 to와 함께 사용해 추가한 이유나 추가한 위치를 나타낼 수 있다.

 

REMOVE

  • 코드를 삭제했을 때 사용한다.

 

RENAME

  • 이름 변경이 있을 때 사용한다.

 

Simplify

  • 코드를 단순화하는 경우 사용한다.

 

Move

  • 코드나 파일 등이 이동하는 경우 사용한다.

 

본문
😀 본문은 한 줄 당 72자 내로 작성한다.
😀 본문은 최대한 상세히 작성한다.
😀 본문에는 무엇을 왜 변경했는지를 작성한다.

 

 

푸터
😀 푸터의 작성은 생략해도 된다.
😀 푸터는 이슈 트랙킹을 위해 사용된다.

 

 

 

gitmoji

:truck: Move or rename resources (e.g.: files, paths, routes).

gitmoji.dev

깃모지(Gitmoji)
  • 아이콘을 이용한 커밋 메시지 작성입니다.
  • 위 사이트에서 어떤 상황에 어떤 아이콘을 사용하는지 확인할 수 있습니다.

 

커밋 템플릿
😀 커밋 템플릿을 사용해 커밋 과정을 조금 더 형식화할 수 있습니다.

 

커밋 템플릿 작성 예시

 

 

  • 많은 블로거들이 커밋 템플릿을 제공하고 있어 'Harry's diary'에서 제공하는 템플릿을 퍼왔습니다.
  • #으로 처리된 곳은 주석 처리됩니다.
  • 위와 같이 작성한 텍스트 파일을 생성합니다.
  • [ git config --global commit.template <.gitmessage.txt 경로> ]
  • 위와 같은 형식으로 명령어를 작성하고, gitmessage.txt에는 텍스트 파일 경로를 입력합니다.
반응형