위 이미지는 좀 민망하지만 내가 최근에 적었던 커밋 메시지들이다.
코드를 작성하고 커밋을 한 나로서는 커밋 메시지만 봐도 저때 뭘 하고 커밋했는지 대충은 알지만, 이 프로젝트를 처음 보는 사람이라면 뭐가 뭔지 헷갈릴수도 있다는 생각이 들었다.
그래서 오늘은 git commit message를 작성하는 방법에 대해 알아보려고 한다.
🤔 git 커밋 메시지는 왜 잘 써야 할까?
- 커밋 로그 가독성이 더 좋아진다
- 협업과 리뷰 프로세스가 더 나아진다
- 코드 유지보수가 더 쉬워진다
Commit Options
-m : 커밋 메시지를 작성한다.
git add file
git commit -m "fix: 커밋 메시지"
-a / --all : 모든 파일을 자동으로 커밋한다.(가능한 사용하지 않는것을 추천)
git commit -a -m "Add: 커밋 메시지"
--amend : 원격 저장소로 푸쉬되지 않은 마지막 커밋 메시지를 다시 작성
git add .
git commit --amend -m "Feat: 커밋 메시지"
Commit Message 구조
#
# Commit Message 기본 구조
#
<type>(<scope>): <subject>
<blank line>
<body>
<blank line>
(<footer>)
type (커밋 종류)
- feat : 새로운 기능 추가
- add : feat 이외의 코드 / 라이브러리 / View, Activity 추가
- fix : 버그 수정
- docs : 문서 수정
- style : 코드 스타일 변경(코드 포매팅, 세미콜론 누락 등 기능 수정이 없는 경우)
- design : 사용자 UI 디자인 변경 (CSS 등)
- test : 테스트 코드, 리팩토링(Test Code)
- refactor : 리팩토링 (Production Code)
- build : 빌드 파일 수정
- ci : CI 설정 파일 수정
- pref : 성능 개선
- chore : 자잘한 수정이나 빌드 업데이트
- comment : 주석 추가 및 변경
- rename : 파일 혹은 폴더명을 수정만 한 경우
- remove : 파일을 삭제만 한 경우
- !BREAKING CHANGE : 커다란 API 변경의 경우
- !HOTFIX : 급하게 치명적인 버그를 고쳐야 하는 경우
scope
선택사항이며, 변경된 부분을 직접적으로 표기한다.
함수가 변경되었다면 함수명을, 또는 메소드가 추가되었다면 클래스명을 기입해 줄 수 있다.
subject
커밋의 제목.
Body
커밋의 본문.
Footer
선택사항이며, 관련된 이슈를 언급한다.
관련 이슈
- 해결 : Closes(종료), Fixes(수정), Resolves(해결)
- 참고 : Ref(참고), Related to(관련), See also(참고)
🤙좋은 git 커밋 메시지를 작성하기 위한 7가지 약속
(이하 내용은 영문으로 작성하는 경우에 최적화 되어 있으므로, 한글로 작성하는 경우 조금 더 유연하게 적용할 수도 있다)
- 제목과 본문을 빈 행으로 구분
- 제목은 영문 기준 50글자 이하
- 제목의 첫 글자는 대문자로 작성
- 제목 끝에 마침표 X
- 제목은 명령문으로 사용, 과거형 X
- 본문의 각 행은 영문 기준 72글자 이하
- 어떻게 보다는 무엇과 왜에 맞춰 작성하기
결론
영문으로 커밋하는 경우, 해당 약속들을 다 지킬 수 있다면 좋을 것 같다.
우선은 type을 붙이고 제목을 한국어로 간결하게 적도록 해볼 생각이다.
type으로 어떤 작업을 하고 커밋했는지 알 수 있다면 에러도 더 빨리 찾을 수 있을것이다.
----------------------------------------------------
참고
https://meetup.nhncloud.com/posts/106
좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 : NHN Cloud Meetup
git커밋
meetup.nhncloud.com
https://jane-aeiou.tistory.com/93
[Git] 좋은 commit message 작성법
좋은 Git Commit Message 작성 가이드라인 Commit Message 평소 커밋 메세지 자세하게 잘 쓰고 있다고 생각했는데, 더 깔끔한 가이드라인이 있어 공유하고자 가져왔습니다. 기존 커밋은 "[카테고리] 개발
jane-aeiou.tistory.com
느낌 있는 Commit Message 작성하기
Commit Message 커밋(Commit)은 프로젝트 내의 어떠한 파일들에 변화가 있는 시점을 메시지와 함께 저장하는 기능입니다. 커밋 시점은 개발자마다 다릅니다만, 개인적으로는 코드를 기능별(Feature)로
nohack.tistory.com
https://cocoon1787.tistory.com/708
[Git] 좋은 커밋 메시지 작성법
🚀 프로젝트 협업을 할 때 커밋 메시지 작성은 필수입니다. 입사 면접에서도 커밋 컨벤션에 대해 종종 질문이 나오는 걸로 알고 있습니다. 아직까지 협업 경험이 없는 상태에서 개인 프로젝트
cocoon1787.tistory.com
'study > git' 카테고리의 다른 글
Next.js 프로젝트에서 husky로 원하는 규칙 만들기(feat. eslint, prettier, lint-staged) (0) | 2024.04.20 |
---|---|
Git 명령어 정리 (0) | 2023.04.12 |
[git] 원격 저장소의 파일 삭제하기 (0) | 2023.01.15 |