[Github] Commit Convention

Jnary·2024년 4월 8일
7

Concept

목록 보기
8/8
post-thumbnail
post-custom-banner

커밋을 기능별로 정리하는 게 중요하다는 것을 깨닫고 history를 연관되게 남기기 위해 커밋 컨벤션을 정리해보기로 했습니다.
커밋 메세지가 자세하지 않으면 files changed 를 클릭해서 일일히 확인해야하기 때문에 리소스가 더 들게 됩니다.
그렇기에 이번 기회에 커밋 컨벤션을 잘 정리해서 커밋 메세지를 일목요연하게 남겨보는 습관을 길러보려고 합니다!

AngularJS Commit Conventions 를 참조하였습니다!

CHANGELOG.md 생성

  • 변경로그: new features bug fixes breaking changes
  • 마지막 릴리즈 이후 모든 주제(커밋 메세지 첫줄) 목록
    git log <last tag> HEAD --pretty=format:%s
  • 이 릴리즈의 새로운 기능
    git log <last release> HEAD --grep feature

중요하지 않은 커밋 인식

  • 서식변경(공백 추가,제거, 들여쓰기), 세미콜론 누락, 주석 등
  • 커밋 내부에는 논리 변경 없음
git bisect skip $(git rev-list --grep irrelevant <good place> HEAD)

history 탐색시 더 많은 정보 제공

  • 일종의 context 정보 추가

commit message 형식

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • commit message의 모든 줄은 100자 이내로

subject line

  • < type >

    • feat feature 새로운 기능 추가
    • fix bug fix 버그 수정
    • docs documentation 문서 수정
    • style 코드 포맷팅, 세미콜론 누락 등
    • refactor 코드 리팩토링
    • test test코드 추가
    • chore maintain (잡일), 빌드 업무 수정, 패키지 매니저 수정
  • < scope >

    • 커밋 변경의 위치를 지정하는 것
    • ex. $location $browser $compile $rootScope ngHref ngClick ngView
  • < subject >

    • 명령형, 현재형 사용
    • 첫글자 대문자 사용 X
    • 문장 종결 dot . 사용 X
  • Message body

    • 변화에 대한 동기 포함
    • 이전 행동과 대조
  • Message footer

    • Breaking changes 변경 사항 설명, 정당성 및 마이그레이션 참고사항
    • Referencing issues Closes #이슈번호
  • 아래 링크에 예시가 많으니 참조하시면 쉽게 감을 잡으실 수 있습니다.
    Git Commit Message Conventions - Examples

Gitmoji

  • git + emoji
  • commit message 작성 tool
  • 부가적인 사항이지만 commit message 앞에 위치시키면 좀 더 가시적으로 < type > 분류가 가능해지는 것 같아요!

Gitmoji 종류

  • 🎨 :art: Improve structure / format of the code.
  • ⚡️ :zap: Improve performance.
  • 🔥:fire: Remove code or files.
  • 🐛 :bug: Fix a bug.
  • 🚑 :ambulance: Critical hotfix.
  • :sparkles: Introduce new features.
  • 📝 :memo: Add or update documentation.
  • 🚀 :rocket: Deploy stuff.
  • 💄 :lipstick: Add or update the UI and style files.
  • 🎉 :tada: Begin a project.
  • :white_check_mark: Add, update, or pass tests.
  • 🔒 :lock: Fix security or privacy issues.
  • 🔐 :closed_lock_with_key: Add or update secrets.
  • 🔖 :bookmark: Release / Version tags.
  • 💚 :green_heart: Fix CI Build.
  • ♻️ :recycle: Refactor code.
  • 🔍 :mag: Improve SEO.
  • 📱 :iphone: Work on responsive design.
  • 🍱 :bento: Add or update assets.

[참조] https://gitmoji.dev/

profile
숭실대학교 컴퓨터학부 21
post-custom-banner

0개의 댓글