요약
- CHANGELOG.md를 스크립트로 생성한다.
git bisect
로 중요하지 않은 커밋은 그냥 넘긴다.- 히스토리에 유의미한 정보를 많이 남긴다.
CHANGELOG.md 생성하기
- CHANGLOG를 만들때, 새기능, 버그픽스, 주목할 만한 변화 이렇게 세가지 정보를 남긴다.
- 마지막으로 배포한 후부터 만들어진 모든 커밋 목록 보기
git log <last tag> HEAD --pretty=format:%s
- 이번에 배포하는 새 기능 조히
git log <last release> HEAD --grep feature
- 사소한 커밋 식별하기
들여쓰기를 하거나, 공백 추가/삭제 등 주석이 필요한 커밋은 무시 할 수 있다.
git bisect
를 이용해 무시한다.git bisect skip $(git rev-list --grep irrelevant <good place> HEAD)
Commit Message Format
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
첫 줄은 70자를 넘기지 않고 body는 80자를 넘기지 않게해야 github에서 읽을 때 편함
- 어떤 내용이 달라졌는지 간략하게 기술
- 간략하게 현재형으로 작성
- 마침표로 끝내지 않기
- ~첫문자를 대문자로 적지 않기~한글로 적을거라 필요 없을듯…
- feat - 개발 사항
- fix - 버그 픽스
- docs - 문서
- style - 포멧이 맞지 않거나 세미콜론이 없다거나 했을때
- refactor - 리팩토링
- test - 테스트 코드 작성
- chore - 기타
무엇을 수정했는지 적는다. ex) $location, $browser, $compile, $rootScope, ngHref, ngClick, ngView 모듈이나 패키지 정도로 생각하면 될것같다.
<body>
-
와 마찬가지로 군더더기 없이 간단하게 - 기존과 무엇이 달라졌고 왜 수정했는지에 대한 내용 서술
<footer>
- 주요 변경점은 footer에서 언급
- 무엇을 고쳤는지, 왜 고쳤는지, 마이그레이션은 어떻게 해야하는지
이슈 번호 넣기
- 이슈번호는 footerdp 별도 라인으로 넣는다.
- 이슈라인은 Closes 로 시작한다.
Closes #234, #432, #999
후기
- 번역 내용을 참고해서 적었다.
- 예전에 했었던 우아한 테크 코스 테스트를 보면서 처음 접했는데 처음에는 복잡하고 번거롭게 보였지만, 공부하고 나니 필요한 부분이라고 생각은 들었다.
- 공부하면서 꾸준히 이렇게 커밋을 하려고 노력해야겠다.
[참고 1] http://dogfeet.github.io/articles/2013/angularjs-git-commit-message-conventions.html [참고 2] https://gist.github.com/stephenparish/9941e89d80e2bc58a153