git commit convention 정하기
커밋 메세지
란 커밋을 할 때, 현재 commit 이 정확히 무엇과 관련한 개발에 해당하고, 어떤 변경 사항이 있는지 등을 작성하는 것을 말합니다.
아래는 간단한 커밋 메세지 예시입니다. (제목, 본문, 꼬리말이 모두 담겨있습니다.)
Feat: "로그인 함수 추가"
로그인 요청을 위한 함수 구현
Closes: #123
커밋 메세지를 잘 작성하면, 우리는 단순히 커밋 이력만 보고서도 현재까지 어떤 개발이 진행되었고, 어떤 커밋에서 문제가 발생했는지 등을 확인할 수 있게 됩니다. 특히나 규모가 큰 개발일수록 이 커밋 메세지는 더욱 중요해집니다.
커밋 메세지는 제목, 본문, 꼬리말로 구성되는데요, 지금까지 우리가 -m”내용”
형태로 적었던 것은 커밋 메세지 중에서 제목에 해당합니다.
💡 만약 커밋 메세지 전체를 작성하고 싶다면 git commit
이라고만 입력하시면 됩니다. 그러면 vim 편집기가 실행되면서, 전체 커밋 메세지를 줄 글 형태로 작성할 수 있습니다.
보통 총 7가지 메세지 규칙을 지킵니다. (출처: https://cbea.ms/git-commit/)
1. 제목과 본문은 한 줄을 띄워서 작성한다.
2. 제목은 영문 기준 50자 이내로 작성한다.
3. 제목 첫글자는 무조건 대문자로 작성한다.
4. 제목 끝에 마침표(.
)는 찍지 않는다.
5. 제목은 개조식 (영어라면 명령문) 으로 작성한다. (Update code, Fix bug 등으로만 작성, 만약에 한글로 작성한다면 ‘abc 함수 수정’ 과 같은 식으로)
💡 한글의 경우에도 ‘수정 abc 함수’ 와 같은 식으로 작성하기도 합니다.
무엇을
, 왜
에 맞춰서 작성한다.제목
은 간단하게 해당 커밋의 목적을 요약해서 작성합니다.
Feat: "로그인 함수 추가"
지켜야할 규칙으로는
1. 50자 이내
2. 시작할 때는 대문자로 시작 (보통 Fix, Add, Change 등의 명령어로 시작)
3. 마칠 때 마침표 등의 특수문자 없이 작성,
4. 개조식으로 작성
5. “타입: 내용” 의 형식으로 작성
그리고 단순히 제목의 내용만 적는 것이 아니라, 앞에 Feat:
이라는 단어가 붙어있는데요, 이는 해당 커밋의 타입을 명시하는 부분입니다.
타입은 여러가지를 지정할 수 있는데요, 보통 프로젝트에 맞춰서 아래와 같은 타입을 사용합니다.
- Feat : 새로운 기능 추가
- Fix : 버그 수정
- Env : 개발 환경 관련 설정
- Style : 코드 스타일 수정 (세미 콜론, 인덴트 등의 스타일적인 부분만)
- Refactor : 코드 리팩토링 (더 효율적인 코드로 변경 등)
- Design : CSS 등 디자인 추가/수정
- Comment : 주석 추가/수정
- Docs : 내부 문서 추가/수정
- Test : 테스트 추가/수정
- Chore : 빌드 관련 코드 수정
- Rename : 파일 및 폴더명 수정
- Remove : 파일 삭제
제목으로 어떤 타입을 사용할지는, 개발을 시작하기에 앞서서 팀에서 미리 합의를 한 후에 진행을 하는 것이 좋습니다.
본문
은 다음과 같이 작성합니다.
로그인 기능 구현을 위해 로그인 요청을 보내는 axios 함수 작성
1. 한 줄 당 72자 이내
2. 아무리 길어도 괜찮으니, 최대한 상세히 작성
3. 무엇을, 왜 변경했는지 작성 (코드 자체를 상세히 적는 것은 지양)
꼬리말
은 다음과 같이 작성합니다.
Close: #123
Github 상의 이슈를 닫는 것과 관련해서, 커밋 메세지를 통해서도 이슈를 닫을 수 있습니다.
1. 꼬리말은 어디까지나 선택 사항입니다. (없어도 괜찮습니다.)
2. “유형: 이슈번호” 형식으로 작성
3. 유형은 “Close, Fix, Resolve” 등을 활용 (보통 Close 는 일반 개발 이슈를 닫을 때, Fix 는 버그 이슈를 닫을 때, Resolve 는 문의나 요청사항에 대한 이슈를 닫을 때 사용합니다.)
💡 이슈를 닫는 메세지는 꼭 꼬리말이 아니라 본문에 작성하기도 합니다.
정말 좋은 정보 감사합니다!