[TIL] angularjs git commit message conventions

요약

  • 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에서 언급
  • 무엇을 고쳤는지, 왜 고쳤는지, 마이그레이션은 어떻게 해야하는지

이슈 번호 넣기

  • 이슈번호는 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