Git Commit 컨벤션

Falco·2022년 11월 7일
0

참고 자료

Git Commit Message Conventions

Kotlin Coding Convetions

Git Commit Message

깃허브의 커밋 메세지는 행별로 100글자를 넘을 수 없다.
어떻게 하면 가독성있는 깃 커밋 메세지를 작성할 수 있을까?

깃 커밋템플릿은 다음과 같으며,

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

제목라인 (Subject line)

제목 줄에는 변경사항에 대한 간략한 설명이 포함되어 있어야한다.

<type>

해당 커밋이 어떤 타입의 작업을 수행했는지 적는다.

  • feat (feature)
  • fix (bug fix)
  • docs (documentation)
  • style (formatting, missing semi colons, …)
  • refactor
  • test (when adding missing tests)
  • chore (maintain)

<scope>

해당 커밋이 어떤 것을 수정했는지 적는다.
예를 들면 $location, $browser, $compile, $rootScope, ngHref, ngClick, ngView 등등 이 있다고한다.

<subject>

변화했다는 현재 시제를 사용한다.
수정됨이 아닌 수정, 기능 변경 등으로 표현
use “change” not “changed” nor “changes”
첫 글자를 대문자로 쓰지 않으며, 끝에는 점이 없다.

<body>

메시지 본문에도 동일하게 변화했다는 현재 시제를 사용한다.
수정한 내용에 대한 근거를 포함하고, 이전 코드와 다르게 작동하는 부분이나 대조되는 부분을 설명한다.

  • 모든 변경 사항에 대한 근거 및 설명
  • 기존 코드의 병합에 필요한 참고 사항
    이 언급되어야 한다.
BREAKING CHANGE: isolate scope bindings definition has changed and
    the inject option for the directive controller injection was removed.
    
    To migrate the code follow the example below:
    
    Before:
    
    scope: {
      myAttr: 'attribute',
      myBind: 'bind',
      myExpression: 'expression',
      myEval: 'evaluate',
      myAccessor: 'accessor'
    }
    
    After:
    
    scope: {
      myAttr: '@',
      myBind: '@',
      myExpression: '&',
      // myEval - usually not useful, but in cases where the expression is assignable, you can use '='
      myAccessor: '=' // in directive's template change myAccessor() to myAccessor
    }
    
    The removed `inject` wasn't generaly useful for directives so there should be no code using it.

이슈에 대한 커밋

버그 수정이나 이슈에 대한 커밋은 Closes키워드를 푸터에 작성한다.

Closes #234

Closes #123, #245, #992

깃 커밋 예제

feat($browser): onUrlChange event (popstate/hashchange/polling)

Added new event to $browser:
- forward popstate event if available
- forward hashchange event if popstate not available
- do polling when neither popstate nor hashchange available

Breaks $browser.onHashChange, which was removed (use onUrlChange instead)
fix($compile): couple of unit tests for IE9

Older IEs serialize html uppercased, but IE9 does not...
Would be better to expect case insensitive, unfortunately jasmine does
not allow to user regexps for throw expectations.

Closes #392
Breaks foo.bar api, foo.baz should be used instead
feat(directive): ng:disabled, ng:checked, ng:multiple, ng:readonly, ng:selected

New directives for proper binding these attributes in older browsers (IE).
Added coresponding description, live examples and e2e tests.

Closes #351
style($location): add couple of missing semi colons
docs(guide): updated fixed docs from Google Docs

Couple of typos fixed:
- indentation
- batchLogbatchLog -> batchLog
- start periodic checking
- missing brace

커밋 컨벤션의 절대적인 규칙은 없으며 회사, 그룹 별 맞는 커밋 컨벤션을 유지하도록 하자.

profile
강단있는 개발자가 되기위하여

0개의 댓글