gitmoji-cli
![gitmoji badge](https://img.shields.io/badge/gitmoji-%20%F0%9F%98%9C%20%F0%9F%98%8D-FFDD67.svg?style=flat-square)
![gitmoji-cli](https://cloud.githubusercontent.com/assets/7629661/20454643/11eb9e40-ae47-11e6-90db-a1ad8a87b495.gif)
A gitmoji interactive client for using gitmojis on commit messages.
About
This project provides an easy solution for using gitmoji from your command line. Gitmoji-cli solves the hassle of searching through the gitmoji list. Includes a bunch of options you can play with! :tada:
Install
npm
npm i -g gitmoji-cli
brew
brew install gitmoji
Usage
gitmoji --help
A gitmoji interactive client for using gitmojis on commit messages.
Usage
$ gitmoji
Options
--init, -i Initialize gitmoji as a commit hook
--remove, -r Remove a previously initialized commit hook
--config, -g Setup gitmoji-cli preferences.
--commit, -c Interactively commit using the prompts
--list, -l List all the available gitmojis
--search, -s Search gitmojis
--version, -v Print gitmoji-cli installed version
--update, -u Sync emoji list with the repo
Commit
You can use the commit functionality in two ways, directly or via a commit-hook.
If you want to integrate gitmoji-cli
in your project I would recommend going for the hook mode as it support more use cases, it's more flexible and has a better integration with other tools, whereas the client mode is more quick and easy to use.
Client
Start the interactive commit client, to auto generate your commit based on your prompts.
gitmoji -c
Options
You can pass default values to the prompts using the following flags:
title
: For setting the commit title.message
: For setting the commit message.scope
: For setting the commit scope.
Those flags should be used like this:
gitmoji -c --title="Commit" --message="Message" --scope="Scope"
Hook
Run the init option, add your changes and commit them, after that the prompts will begin and your commit message will be built.
gitmoji -i
git add .
git commit
⚠️ The hook should not be used with the gitmoji -c
command.
![gitmoji commit](https://user-images.githubusercontent.com/7629661/41189947-1de56124-6bd6-11e8-9567-e7f1a8e99500.png)
Search
Search using specific keywords to find the right gitmoji.
gitmoji -s "criteria"
![gitmoji search](https://user-images.githubusercontent.com/7629661/41189878-d24a3b78-6bd4-11e8-8d47-c8edf3b87e53.png)
List
Pretty print all the available gitmojis.
gitmoji -l
![gitmoji list](https://user-images.githubusercontent.com/7629661/41189877-d22b145a-6bd4-11e8-97f8-a8e36bcab062.png)
Update
Update the gitmojis list, by default the first time you run gitmoji, the cli creates a cache to allow using this tool without internet connection.
gitmoji -u
Config
The cli has some built-in configuration options that you can tweak at your own preference:
- Automatic git add: Enable or disable the automatic
git add .
every time you use the commit command. - Emoji format: Switch between the emoji format.
- Message prompt: Enable or disable the message prompt.
- Scope prompt: Enable or disable conventional commits scope prompt.
- Gitmojis api URL: Set a custom URL to use it as the library of gitmojis.
You can configure these options via (in order of precedence):
- A
gitmoji
key in your package.json
file - A
.gitmojirc.json
file. - Using the global cli configuration.
If no user configuration is found, a set of default values will be used.
package.json
{
"gitmoji": {
"autoAdd": false,
"emojiFormat": "code | emoji",
"scopePrompt": false,
"messagePrompt": false,
"capitalizeTitle": true,
"gitmojisUrl": "https://gitmoji.dev/api/gitmojis"
}
}
.gitmojirc.json
{
"autoAdd": false,
"emojiFormat": "code | emoji" ,
"scopePrompt": false,
"messagePrompt": false,
"capitalizeTitle": true,
"gitmojisUrl": "https://gitmoji.dev/api/gitmojis"
}
Local configuration
Run gitmoji -g
to setup some gitmoji-cli preferences.
![gitmoji config](https://user-images.githubusercontent.com/7629661/41189876-d21167ee-6bd4-11e8-9008-4c987502f307.png)