8 stable releases
new 2.1.1 | Dec 8, 2024 |
---|---|
2.1.0 | Sep 9, 2024 |
2.0.0 | Aug 10, 2024 |
1.1.0 | Jan 6, 2024 |
1.0.0 | Oct 29, 2023 |
#353 in Development tools
535 downloads per month
390KB
10K
SLoC
Gitbox
Gitbox is the spiritual successor and rewrite of get.
It leverages the git CLI tool to enable fast and simple semantic versioning and conventional commits.
Note
Unless new features are requested, this project is considered completed. This means that there won't be more development time other than the one needed to fix bugs and implement new, approved features.
To ask for a feature, create a new issue. If the requested feature is considered pertinent to the project, it may be implemented in a future version. If you want to implement the feature yourself, please first create a new issue to ask for its approval, then you can create a Pull Request.
Breaking changes of 2.0.0
- Default prerelease pattern is now a single number.
- Move
refresh
subcommand fromcommit
subcommand into a standalone subcommand. - Remove
docker
subcommand fromdescribe
subcommand.
Installation
If you want to install the distributed binary, run cargo install gitbox
.
If you want to install from source, clone the repository and install it by providing the path to cargo:
git clone <origin-URL> gitbox
cd gitbox
cargo install --path .
Cargo installation instructions
Features
Gitbox contains multiple subcommands which execute different tasks.
The help message gb help
(or gb --help
):
Gitbox (gb) is wrapper for git and it enhance some functionalities.
Usage: gb <COMMAND>
Commands:
changelog Generate a changelog
commit Create a commit with a conventional message
complete Print a completion script
describe Calculate the next version
init Initialize a git repository
license Create a license file
tree Print a fancy view of the commit tree
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Help
This subcommand will print help messages for the other subcommand specified:
gb help <subcommand>
It is equivalent to gb <subcommand> --help
or gb <subcommand> -h
.
Changelog
This subcommand generates a list of changes from the last release (or the last version, if a flag is enabled).
The list can be formatted using options (see gb changelog --help
).
For example, the command to format the changelog in Markdown is gb changelog --title-format "# %s" --type-format "## %s" --scope-format "### %s" --list-format "%s" --item-format "* %s" --breaking-format "**%s**"
.
Commit
gb commit
allows to easily create a commit which follows the conventional commit standard.
If no option is specified, it will proceed by asking the user the commit type, its scope, whether it is a breaking change, the summary and the body of the commit. With options, these questions can be skipped (by providing a value).
For a simple commit (not breaking and without body), the command suggested is gb commit --no-breaking -m ''
.
For the complete list of options, run gb help commit
(or gb commit --help
).
Complete
This subcommand prints a completion script for Gitbox. Follow the instruction of your shell (if supported) to install it.
Describe
gb describe
calculates the new semantic version from the list of commits since the last release.
You can configure the triggers for a specific change (i.e. an update to a core dependency, if properly configured with type and scope, can trigger a patch update).
For all configuration options, see gb help describe
.
Init
This simple subcommand initialize a git repository with an empty commit, to allow the early usage of the other subcommands.
License
The license
subcommand retrieve the list of open source licenses from https://choosealicense.com/ and allow the user to download the chosen license text.
Refresh-extra
This subcommand refreshes the content of the .git/extra
folder, which contains all the files used by GitBox to work.
This command shall be run after cloning a remote repository or pulling remote commits, as they may introduce new data for GitBox.
As this can be a heavy operation, it has a standalone subcommand.
Tree
gb tree
pretty prints the output of git log
. To navigate it you can pipe its output to a pager: gb tree | less
.
License
This software is distributed according to the MIT license.
Dependencies
~13–28MB
~364K SLoC