# git-cz **Repository Path**: sujunmin/git-cz ## Basic Information - **Project Name**: git-cz - **Description**: Semantic Git commits - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-05 - **Last Updated**: 2022-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) # git-cz ![image](https://user-images.githubusercontent.com/9773803/49760520-fa6c6f00-fcc4-11e8-84c4-80727f071487.png) ### Without installation ```shell npx git-cz # or npx git-cz -e ``` ### Install globally standalone ```shell npm install -g git-cz git-cz # or git-cz -e ``` ### Install locally with Commitizen ```shell npm install -g commitizen npm install --save-dev git-cz ``` `package.json`: ```json { "config": { "commitizen": { "path": "git-cz" } }, } ``` run: ```shell git cz ``` ### Install globally with Commitizen ```shell npm install -g commitizen git-cz commitizen init git-cz --save-dev --save-exact ``` run: ```shell git cz ``` ## Custom config You can provide a custom configuration in a `changelog.config.js` file in your repo, or in any parent folder. git-cz will search for the closest config file. Below is default config: ```js module.exports = { "disableEmoji": false, "list": [ "test", "feat", "fix", "chore", "docs", "refactor", "style", "ci", "perf" ], "maxMessageLength": 64, "minMessageLength": 3, "questions": [ "type", "scope", "subject", "body", "breaking", "issues", "lerna" ], "scopes": [], "types": { "chore": { "description": "Build process or auxiliary tool changes", "emoji": "🤖", "value": "chore" }, "ci": { "description": "CI related changes", "emoji": "🎡", "value": "ci" }, "docs": { "description": "Documentation only changes", "emoji": "✏️", "value": "docs" }, "feat": { "description": "A new feature", "emoji": "🎸", "value": "feat" }, "fix": { "description": "A bug fix", "emoji": "🐛", "value": "fix" }, "perf": { "description": "A code change that improves performance", "emoji": "⚡️", "value": "perf" }, "refactor": { "description": "A code change that neither fixes a bug or adds a feature", "emoji": "💡", "value": "refactor" }, "release": { "description": "Create a release commit", "emoji": "🏹", "value": "release" }, "style": { "description": "Markup, white-space, formatting, missing semi-colons...", "emoji": "💄", "value": "style" }, "test": { "description": "Adding missing tests", "emoji": "💍", "value": "test" } } }; ``` ## Non-interactive mode Using `--non-interactive` flag you can run `git-cz` non-interactive mode. For example: ``` git-cz --non-interactive --type=feat --subject="add onClick prop to component" ``` CLI parameters: - `--type` - `--subject` - `--scope` - `--body` - `--breaking` - `--issues` - `--lerna` ## Disable Emoji Using `--disable-emoji` flag will disable emoji. For example: ``` git-cz --disable-emoji ``` ## Commit message format * A commit message consists of a **header**, **body** and **footer**. * The header has a **type** and a **subject**: ``` [()]: [BLANK LINE] [body] [BLANK LINE] [breaking changes] [BLANK LINE] [footer] ``` The **header** is the only mandatory part of the commit message. The first line (type + subject) is limited to 50 characters **[enforced]** Any other line should be limited to 72 character **[automatic wrapping]** This allows the message to be easier to read on GitHub as well as in various git tools. ### Type Must be one of the following: - `test` — Adding missing tests - `feat` — A new feature - `fix` — A bug fix - `chore` — Build process or auxiliary tool changes - `docs` — Documentation only changes - `refactor` — A code change that neither fixes a bug or adds a feature - `style` — Markup, white-space, formatting, missing semi-colons... - `ci` — CI related changes - `perf` — A code change that improves performance ### Subject The subject contains succinct description of the change: * Use the imperative, present tense: "change" not "changed" nor "changes" * No dot (.) at the end. ### Body Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior. #### Affects [only on [lerna](https://lernajs.io/) environments] Select the packages the commit affected. ### Breaking Changes **Breaking Changes** must start with the words `BREAKING CHANGE: `. ### Footer The footer is the place to reference any tasks related to this commit. ## Why this Fork? ``` npm i -g git-cz added 1 package in 0.612s ``` Installs in 0.6s vs 31.1s. ``` npm i -g mol-conventional-changelog added 345 packages in 31.076s ```