# commit message template
#=================#
# <type>(<scope>): <subject>
# <BLANK LINE>
# <body>
# <BLANK LINE>
# <footer>
#=================#


# Any line of the commit message cannot be longer 100 characters! This allows the message to be easier to read on github as well as in various git tools.

## Subject line
# Subject line contains succinct description of the change.

# Allowed `<type>`
# feat (feature): 새로운 기능 추가
# fix (bug fix): 버그 수정
# docs (documentation): 문서 작업
# style (formatting, missing semi colons, …): 코드 스타일 수정
# refactor: 기능 변경 없이 코드 구조 개선
# test (when adding missing tests): 테스트 코드 추가 또는 기존 테스트 수정
# chore (maintain): 빌드, 패키지 매니저 설정 등 코드 수정이 없는 작업

# Allowed `<scope>`
# Scope could be anything specifying place of the commit change. For example $location, $browser, $compile, $rootScope, ngHref, ngClick, ngView, etc...

# `<subject>` text
# - use imperative, present tense: “change” not “changed” nor “changes”
# - don't capitalize first letter
# - no dot (.) at the end

## Message body
# - just as in <subject> use imperative, present tense: “change” not “changed” nor “changes”
# - includes motivation for the change and contrasts with previous behavior

# http://365git.tumblr.com/post/3308646748/writing-git-commit-messages
# http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

## Message footer

# Breaking changes
# All breaking changes have to be mentioned in footer with the description of the change, justification and migration notes

# ```
# 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.
# ```

# Referencing issues
# Closed bugs should be listed on a separate line in the footer prefixed with "Closes" keyword like this:

# ```
# Closes #234
# ```
#
# or in case of multiple issues:
#
# ```
# Closes #123, #245, #992
# ```

## Example

# ```
# 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
# ```
#
# ```
# feat($compile): simplify isolate scope bindings
#
# Changed the isolate scope binding options to:
#   - @attr - attribute binding (including interpolation)
#   - =model - by-directional model binding
#   - &expr - expression execution binding
#
# This change simplifies the terminology as well as
# number of choices available to the developer. It
# also supports local name aliasing from the parent.
#
# 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.
# ```

## Reference
# https://gist.github.com/stephenparish/9941e89d80e2bc58a153#format-of-the-commit-message

## Usage
# git config --local commit.template .github/.gitmessage
# git config --local --unset commit.template
