#commit-message #git-commit #conventional-commits

bin+lib glint

a friendly tool for creating commits in the commitlint style

14 releases (1 stable)

6.3.4 Sep 1, 2021
0.6.2 Oct 12, 2020
0.5.0 Aug 15, 2020
0.4.0 Sep 29, 2019
0.1.7 Sep 15, 2019

#22 in #conventional-commits

22 downloads per month

MIT license

335KB
2K SLoC

glint is a friendly tool for creating commits in the conventional style.

screen recording of usage

Install

You can download OSX, Linux, and Windows binaries from the releases page. The archives have a file named 'glint' or 'glint.exe' which you should place somewhere covered by your PATH.

Note: Windows binaries have only been tested in cmd.exe on Windows 10.

Alternatively install the rust toolchain, restart your shell, and run the following:

cargo install glint --locked

Assuming ~/.cargo/bin is in your PATH (which the installer does by default), you should be able to run glint and get usage information.

Updating

To get a newer version, download it from the releases page and use which glint to see where you saved it previously. Simply replace the binary with the new version.

If you installed with cargo then updating is easier:

cargo install glint --force

Usage

The main command is glint commit which you can shorten to glint c.

If run with no other arguments, you'll receive each of the prompts in sequence.

To pass extra arguments to the final git commit command, use -- to mark the end of glint's arguments.

# Set the commitlint type to 'docs', and also ask git to sign the commit
glint commit -t docs -- -S

Prompt: Files

The first prompt allows you to select files to add to the commit. It will only appear if no files are already staged (e.g. by using git add before running glint).

It's a simple checkbox list where you use the up/down arrow keys to navigate and the Space key to toggle.

You may also toggle all files (even if some are hidden) by toggling the list item named "".

Tapping the 'd' key will show a diff of the file(s) for the highlighted line, which you can exit by pressing 'q'.

Press Enter when you're ready to move to the next prompt.

Prompt: Type

Each commit needs a type, which you can provide interactively or by using the -t/--type flag when running glint.

You may:

  • press letters to filter the list, and it will submit when one option remains
  • use arrow keys to navigate up/down in the list and press Enter to select one

If you need to use a type that isn't in the list, please use the -t flag when running glint, such as glint c -t other-type.

Prompt: Scope

After a type is selected, the optional scope may be provided. You may simply type out the scope you want, and press Enter when you're done.

It's valid to not provide a scope, in which case the commit message will not include the parenthesis (e.g. "fix: some bug" might be the final commit message).

Press Enter when you're done, or Escape to return to the Type prompt.

Prompt: Message

The final step is to write your commit message. A basic inline text editor is provided where you may enter input as usual.

There are a few extra features (and this will likely increase in the future):

  • Ctrl-A, Ctrl-E to move to the start/end of a line
  • Arrow keys to navigate, including navigating to positions where there's no text (e.g. pressing down will insert a new line)

When you're satisfied with your commit message, press Enter to submit it and finalize the commit. You may press Escape to return to the Scope prompt.

Dependencies

~6MB
~102K SLoC