Git 커밋 컨벤션
Commit message
일관되고 직관적이지 않은 내용의 커밋 로그가 누적되면 가독성이 매우 떨어진다. 혼자가 아닌 여러 사람들과 개발을 한다면 상황은 더욱 악화된다. 여러 사람들과 협업할 때 커밋은 기능별로 커밋하면 특정 기능에 대해서만 코드 리뷰를 진행할 수 있어 협업이 수월해진다. 여기에 일관되고 직관적인 내용으로 커밋 메시지를 남긴다면 협업의 효율을 증진시킬 수 있다. 커밋 메시지로 효율을 증진시킬 수 있는 컨벤션에 대해서 정리해보자.
AngularJS Commit Conventions
첫 번째로 AngularJS Commit Conventions를 참고하여 작성한 내용이다. 아래의 <scope> 부분을 제외하면 Udacity Commit Convention과 동일하다.
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
<type>
- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서 작성 및 수정
- style : 코드에 영향이 없는 스타일 수정 (ex. 세미콜론 누락, 코드 포맷팅 등)
- refactor : 리팩토링
- test : 테스트 코드 작성 및 수정
- chore : 빌드 혹은 패키지 매니저 수정사항
<scope>
- 선택 사항으로 변경된 부분을 표기
- ex.
README.md
파일을 수정한 경우,docs(README.md): <subject>
<subject>
- 첫 단어는 대문자가 아닌 소문자로 작성
- 마지막에 온점(.) 금지
- 명령문 형태로 현재형으로 작성. change(o), changes(x), changed(x)
<body>
- 어떤 점이 달라졌는지 변경한 이유를 포함한 내용을 담는다. 즉, 무엇을? 왜 위주의 내용을 작성한다.
<footer>
- close, fix, resolve, ref, relate to(관련 이슈 해결 중, 미해결 경우) 등의 키워드를 사용한다.
- 선택 사항으로 이슈 트래커 ID를 사용한다. 커밋 메시지로 이슈를 자동 종료시킬 수 있다.
- 자세한 내용은 깃허브 공식문서(Link PR to issue)를 참조한다.
- ex.
close #321
Gitmoji
두 번째로는 깃모지를 참고하여 작성한 내용이다. 깃모지는 git + emoji를 합한 합성어이며 커밋 메시지를 작성하는 툴이다. 단순한 커밋 메시지보다 이모지를 사용하면 커밋 메시지를 흝어 볼 때 가독성이 더욱 뛰어난 장점이 있다.
자주 사용할만한 깃모지를 정리했으며, 아래를 제외하고 더 많은 깃모지 컨벤션이 있다.
- 🎨 : 코드의 포맷, 구조 개선
- ⚡️ : 성능 향상
- 🔥 : 코드 및 파일 제거
- 🐛 : 버그 수정
- 🚑️ : 핫픽스
- ✨ : 새로운 기능 추가
- 📝 : 문서 수정 및 추가
- 🚀 : 배포 작업
- 💄 : UI 및 디자인 수정 및 추가
- 🎉 : 프로젝트 시작 (첫 커밋)
- ✅ : 테스트 추가, 수정 통과
- 🔒️ : 보안 이슈 수정
- 🔖 : 출시, 버전 태그
- 🚧 : Working In Progress(WIP)
- ➕ : dependency 추가
- ➖ : dependency 제거
- ⬇️ : dependencies 다운그레이드
- ⬆️ : dependencies 업그레이드
- ♻️ : 코드 리팩토링
- 🔧 : configuration 파일 추가 및 수정
- ✏️ : 오타 수정
- 💩 : 개선이 필요한 코드를 작성할 때
- 🔀 : merge branch
- 🚚 : 자료 이동 및 파일 이름 수정
- 💬 : 텍스트 혹은 리터럴 추가 및 수정
- 🥅 : 에러 수정
- 💫 : 애니메이션 추가 및 수정
- ⚰️ : 불필요한 코드 제거
Gitmoji-cli
gitmoji-cli를 설치하면 터미널에서 커밋할 때 깃모지를 간단히 적용할 수 있다.
$ npm i -g gitmoji-cli
# or
$ brew install gitmoji
gitmoji --help
명령어를 통해서 도움말을 확인할 수 있다.
git commit -m
명령어 대신 gitmoji -c
명령어로 커밋 메시지를 작성한다. 방향키로 이모지를 선택하거나 원하는 키워드를 입력하여 해당 이모지 검색이 가능하다.
commit title과 commit message를 이어서 작성하면 완료된다.
깃허브에서 아래와 같은 결과를 확인할 수 있다.
참조
> Udacity Git Commit Message Style Guide