Git Commit Message conventions for AngularJS
Conventional Commits format
<type>(<scope>): <subject> <body> <footer>
Where:
<type> is one of:
External-facing stuff, important to publish to users.
- feat or new β¨: New feature. Correlates to MINOR in Semantic Versioning.
- feat: add beta sequence
- fix π: Bug fix. Correlates to PATCH in Semantic Versioning.
- fix: remove broken confirmation message
- security π: security-related fix
- typo βοΈ: extremely minor fix
- perf β‘: A code that improves performance. Sometimes a subset of refactor.
- config βοΈ: Configuration change, e.g. modify a default.
- i18n π or π¬: Internationalization/translation addition, fix.
Internal repository-related:
- initial π: Initial commit of something, may not yet work.
- revert βͺ: revert of previous behavior, fix, or feature
- test β
or π¨: Adding new test or making changes to existing test
- test: ensure Tayne retains clothing
- upgrade π: upgrade an external dependency
- deps π: Add, upgrade, or anything to do with an external dependency.
Internal changes, not user-facing.
- chore π§: Code change that external user won't see (e.g. change to .gitignore file)
- chore: add Oyster build script
- ci π·: CI-related change, subset of chore.
- ci π: Fix CI
- build π¦: Build related changes (e.g. cmake, Broccoli, grunt). Subset of chore.
- deploy or release π: New version, snapshot, or deploy.
Refactor-related, i.e. does not add new features.
- refactor β»οΈ: A code that neither fix bug nor adds a feature. (e.g. semantic changes like renaming a variable/ function name)
- refactor: share logic between component1 and component2
- docs π: Documentation related changes. Subset of refactor.
- docs: explain hat wobble
- style π¨: Code change related to styling, like improving structure or formatting. Subset of refactor.
- style: convert tabs to spaces
- style: format w/ black
- rename π: Move files. Subset of refactor.
- remove π: Remove deprecated code no longer used.
<scope> refers to the module or component. Examples:
- init
- runner
- watcher
- config
- web-server
- proxy
<subject> is the first line of the commit message, and:
- 70c or less
- Uses imperative, present tense. "add" vs "adds" or "added", "fix" vs "fixes" or "fixed".
- Do not end with period
<body> should:
- Includes motivation for the change, and contrasts previous behavior/implementation vs new behavior/implementation
- Describe what the commit will do, not what you did.
- Wrap at 72c.
<footer> should:
Be one per line, and follow the git trailer format. That is, each line is a keyβvalue pair, separated by either :<space> or <space>#.
Closes #${BUG_NO}, e.g. Closes #123 if the commit closes an issue in your issue tracker.
BREAKING-CHANGE: ${description} to describe this commit breaks previous behavior/interface.
See also:
Emoji was taken from folke/devmoji and
Good examples:
Semantic Branch Names
https://gist.github.com/seunggabi/87f8c722d35cd07deb3f649d45a31082
- feature/: New feature
- bugfix/: Bug fix
- docs/: Documentation change
- style/: Style change
- refactor/: Refactor
- test/: Adding tests, refactoring tests, etc.
- chore:/ Chore