Git Commit Message

Obebe·2023년 11월 5일

Git

목록 보기
3/6

Commit Message

지금까지는 아무 말을 적으며 커밋 메세지를 남겼는데, 이 또한 공부해보니 고쳐야할 점이 많다는 것을 느끼고 이에 관해 정리해보려한다.
특히 협업에서의 중요성은 더 올라감을 느꼈다.

메세지 구조

type(옵션): [#issueNumber -]Subject // -> 제목
(한 줄을 띄워 분리)
body(옵션) // -> 본문
(한 줄을 띄워 분리)
footer(옵션) // -> 꼬리말

◾ type : 어떤 의도로 커밋했는지를 type에 명시. 자세한 사항은 아래서
◾ subject : 최대 50글자가 넘지 않도록 하고 마침표는 찍지 않음. 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기.
◾ body : 긴 설명이 필요한 경우에 작성. 어떻게 했는지가 아니라, 무엇을 왜 했는지를 작성. 최대 75자를 넘기지 않도록 함
◾ footer : issue tracker ID를 명시하고 싶은 경우에 작성

제목

타입

타입은 태그와 제목으로 구성, 태그는 영어로 쓰되 첫 문자는 대문자

"태그:제목"의 형태로 : 뒤에만 space가 있음에 유의!

태그 이름설명
Feat새로운 기능을 추가할 경우
Fix버그를 고친 경우
DesignCSS등 사용자 UI 디자인 변경
!BREAKING CHANGE커다란 API 변경의 경우
!HOTFIX급하게 치명적인 버그를 고쳐야하는 경우
Style코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor프로덕션 코드 리팩토링
Comment필요한 주석 추가 및 변경
Docs문서를 수정한 경우
Test테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)
Chore빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
Rename파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove파일을 삭제하는 작업만 수행한 경우

태그는 어떻게 적는가

태그 뒤에 ':' 를 붙여 제목과 구별할 수 있도록 함

❕ 추가적인 문맥 정보를 제공하기 위한 목적으로 괄호 안에도 적을 수 있음

ex)
"Feat(navigation):"
"Fix(database):"

개선

Style, Refactor, Comment 태그가 개선 태그의 종류

Style: 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우(오타, 탭 사이즈, 변수명 변경 등도 포함)
Refactor: 프로덕션 코드 리팩토링, 새로운 기능이나 버그 수정없이 현재 구현을 개선한 경우
Comment: 필요한 주석 추가 및 변경

제목은 어떻게 적는가

제목은 코드 변경 사항에 대한 짧은 요약,

  1. 제목의 처음은 동사 원형으로 시작합니다.
  2. 총 글자 수는 50자 이내로 작성
  3. 마지막에 특수문자는 삽입 ❌ ex) 마침표(.), 느낌표(!), 물음표(?)
  4. 제목은 개조식 구문으로 작성

꼬리말은 어떻게 작성하는가

  1. 꼬리말은 optional이고 이슈 트래커 ID를 작성
  2. "유형: #이슈 번호" 형식으로 사용
  3. 여러 개의 이슈 번호를 적을 때는 쉼표로 구분
  4. 이슈 트래커 유형은 다음 중 하나를 사용합니다.
    - Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
    - Resolves: 이슈를 해결했을 때 사용
    - Ref: 참고할 이슈가 있을 때 사용
    - Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
    ex) Fixes: #45 Related to: #34, #23

커밋 메세지 Emoji

🎨 : 코드의 형식 / 구조를 개선 할 때
📰 : 새 파일을 만들 때
📝 : 사소한 코드 또는 언어를 변경할 때
🐎 : 성능을 향상시킬 때
📚 : 문서를 쓸 때
🐛 : 버그 reporting할 때, @FIXME 주석 태그 삽입
🚑 : 버그를 고칠 때
🐧 : 리눅스에서 무언가를 고칠 때
🍎 : Mac OS에서 무언가를 고칠 때
🏁 : Windows에서 무언가를 고칠 때
🔥 : 코드 또는 파일 제거할 때 , @CHANGED주석 태그와 함께
🚜 : 파일 구조를 변경할 때 . 🎨과 함께 사용
🔨 : 코드를 리팩토링 할 때
☔️ : 테스트를 추가 할 때
🔬 : 코드 범위를 추가 할 때
💚 : CI 빌드를 고칠 때
🔒 : 보안을 다룰 때
⬆️ : 종속성을 업그레이드 할 때
⬇️ : 종속성을 다운 그레이드 할 때
⏩ : 이전 버전 / 지점에서 기능을 전달할 때
⏪ : 최신 버전 / 지점에서 기능을 백 포트 할 때
👕 : linter / strict / deprecation 경고를 제거 할 때
💄 : UI / style 개선시
♿️ : 접근성을 향상시킬 때
🚧 : WIP (진행중인 작업)에 커밋, @REVIEW주석 태그와 함께 사용
💎 : New Release
🔖 : 버전 태그
🎉 : Initial Commit
🔈 : 로깅을 추가 할 때
🔇 : 로깅을 줄일 때
✨ : 새로운 기능을 소개 할 때
⚡️ : 도입 할 때 이전 버전과 호환되지 않는 특징, @CHANGED주석 태그 사용
💡 : 새로운 아이디어, @IDEA주석 태그
🚀 : 배포 / 개발 작업 과 관련된 모든 것
🐘 : PostgreSQL 데이터베이스 별 (마이그레이션, 스크립트, 확장 등)
🐬 : MySQL 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)
🍃 : MongoDB 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)
🏦 : 일반 데이터베이스 별 (마이그레이션, 스크립트, 확장명 등)
🐳 : 도커 구성
🤝 : 파일을 병합 할 때

profile
다른 건 노력의 시간

0개의 댓글