pargit is a workflow utility for Git, inspired by git-flow and git-flow-avh.
git-flow
is a tool originally published as a follow-up to this article from 2010, which has been very appealing for developers. git-flow
allows you to go through the various phases of release/feature cycles with relative ease, which is great.
Although git-flow
is great, it is far from perfect. First, it has all sorts of usability issues, some of which addressed by the git-flow-avh
fork project. More importantly, for some types of projects, a lot of manual labour still needs to be done to publish and manage releases. This is where Pargit steps in.
Pargit aims to be an opinionated alternative to git-flow
, while providing better automation around the tedious parts.
git-flow
fail and leave you with a half-published release. Pargit fixes that by rolling back the release in a clean way and getting rid of the temporary tag created.Cargo.lock
correctness, performs version bumps for you, and prompts you to choose the project being bumped in multi-crate workspaces.git-flow
, pargit will not prompt you twice for a commit message as a part of releasing a version 🤦♂️shell
$ cargo install --locked pargit
Pargit forks feature branches from the develop
branch by default. To start a new feature:
```shell
$ pargit feature start my_feature
$ pargit feature delete [feature name]
$ pargit feature publish [feature name] ```
```shell
$ pargit release start 0.1.0
$ pargit release start minor
$ pargit release publish [release name]
$ pargit release finish [release name] ```
Pargit also supports quick version releases, which does the version release steps in succession for you:
shell
$ pargit release version 0.2.0
Or you can specify a major/minor/patch bump:
shell
$ pargit release version major
You can configure pargit by adding a .pargit.toml
file in your project's root directory, in the following format (all values optional):
toml
tag_prefix = "" # prefix for tags, e.g. "v". Default is empty prefix