Git과 GitHub은 단순한 버전관리도구를 넘어선 문서 & 협업 툴이다. 개발자가 다른 개발자의 코드를 분석할 때 목적&시기를 확인하기 위해 제일 먼저 확인하는 것은 Git Commit Message이다.
Git의 가장 기본적인 문서인 커밋 메시지를 잘 작성하는 것은 중요하다.
팀으로 작업을 진행한다면 팀의 커밋 메시지 규칙을 정하는 것은 필수적이다. 그러나 커밋 메시지에는 정석, 정해진 규칙은 없으므로 레퍼런스를 찾아보고 논의하는 과정을 거치면서 다듬어나가야 한다.
참고자료 : Commit Message Guidelines, How to Write Good Commit Messages: A Practical Git Guide
개별 커밋 메세지도 중요하지만 프로젝트의 전체 흐름이 어떻게 이루어져 있는지를 보기위해서는 전체 커밋의 히스토리를 확인해야한다.
이 때 만약 main의 commit history가 뒤죽박죽으로 섞여있으며 불필요한 커밋들이 섞여있다면 전체 히스토리를 파악하기가 힘들어진다.
작업중일때는 원하는만큼 커밋을 남기되, 최종적으로 브랜치의 작업이 완료되고 PR을 통해서 main에 머지 요청을 하기 전 원하는 형태로 git squash
로 커밋을 정리해준다.
참고자료 : Git 스쿼시 커밋
<type>[optional scope]: <description>
[optional body]
[optional footer]
// 예제
feat(signup): 회원가입 API 연결 및 회원가입 포맷 작성
PR close: #3999
// 예제
feat(docs-infra): add v8 to the version picker
in the navbar(#35196)
The v8.angular.io should be ready shortly.
PR Close #35196
type(optional scope): 내용작성
feat
: 새로운 기능 추가 및 기존 기능 변경fix
: 버그 수정 (기존 기능 변경 없이 bug 수정하는 경우)BREAKING CHANGE
: API 호환성이 바뀌거나 라이브러리를 변경하는 경우 사용docs
: 문서 수정style
: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우design
: CSS 등 사용자 UI 디자인 변경refactor
: 코드 리펙토링test
: 테스트 코드, 리펙토링 테스트 코드 추가chore
: 빌드 업무 수정, 패키지 매니저 수정