Differences between revisions 1 and 2
Revision 1 as of 2013-05-20 19:52:50
Size: 141
Editor: SamatJain
Comment:
Revision 2 as of 2021-04-09 01:51:07
Size: 4137
Editor: SamatJain
Comment: More about Conventional Commits, plus Emoji
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

== 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 [[https://git-scm.com/docs/git-interpret-trailers|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:

 * [[https://karma-runner.github.io/6.3/dev/git-commit-msg.html|Karma Git Commit Msg]]
 * [[https://365git.tumblr.com/post/3308646748/writing-git-commit-messages|365Git: Writing git commit messages]]
 * [[https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html|tbaggery - A note about git commit messages]]
 * [[https://sparkbox.com/foundry/semantic_commit_messages|Semantic Commit Messages]]
 * Emoji was taken from [[https://github.com/folke/devmoji|folke/devmoji]] and

Good examples:

 * [[https://github.com/eslint/eslint/commits/master|eslint commit history]] and [[https://gitmoji.dev/gitmoji.dev]]

== 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

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:

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

SamatsWiki: CodingStyle/Git (last edited 2022-09-08 20:04:59 by SamatJain)