25 个版本 (7 个稳定版)
1.3.0 | 2024 年 3 月 30 日 |
---|---|
1.1.5 | 2023 年 12 月 26 日 |
0.7.0 | 2022 年 3 月 8 日 |
0.6.1 | 2021 年 11 月 28 日 |
0.3.2 | 2021 年 1 月 24 日 |
#128 in 构建实用工具
每月 1,033 次下载
58KB
1K SLoC
概述
帕里吉特是一个 Git 工作流程实用工具,灵感来源于 git-flow 和 git-flow-avh。
等等?
git-flow
是一个工具,最初作为 2010 年这篇文章的后续作品发布,对开发者来说非常有吸引力。 git-flow
允许您相对轻松地完成发布/功能周期中的各个阶段,这非常好。
为什么是帕里吉特?
虽然 git-flow
很好,但它并不完美。首先,它存在各种可用性问题,其中一些问题已被 git-flow-avh
分支项目解决。更重要的是,对于某些类型的项目,发布和管理版本仍然需要进行大量手动操作。这就是帕里吉特介入的地方。
帕里吉特旨在成为 git-flow
的有见地替代方案,同时提供更好的自动化,以处理繁琐的部分。
主要功能
- 原子发布 - 当尝试发布一个与上游仓库冲突的发布时,像
git-flow
这样的工具会失败,并留下一个半发布的发布。帕里吉特通过干净地回滚发布并删除临时标签来解决这个问题。 - 项目内部版本逻辑 - 帕里吉特包括预发布检查,旨在最大限度地减少痛苦和错误。对于 Rust 项目,它检查
Cargo.lock
正确性,为您执行版本升级,并提示您在多 crate 工作区中选择要升级的项目。 - 合理的默认设置 - pargit旨在使流程合理,在可能的情况下推断参数,并使用合理的默认值来处理项目工作流程。与
git-flow
不同,pargit在发布版本时不会两次提示你输入提交信息 🤦♂️
快速入门
安装
$ cargo install --locked pargit
特性
Pargit默认从develop
分支创建功能分支。要开始一个新功能
# starts a new feature, and places you in the feature/my_feature branch
$ pargit feature start my_feature
# deletes a feature (defaults to the current one)
$ pargit feature delete [feature name]
# publishes a feature branch to a matching remote branch, setting its upstream (defaults to the current feature)
$ pargit feature publish [feature name]
发布
# Start a new release from the develop branch
$ pargit release start 0.1.0
# Alternatively, you can tell pargit to bump a patch, minor or major version numbers
$ pargit release start minor
# You can publish a release branch to a remote branch, setting its upstream
$ pargit release publish [release name]
# When you're done, finish the release
$ pargit release finish [release name]
Pargit还支持快速版本发布,它会连续为您执行版本发布步骤
$ pargit release version 0.2.0
或者,您可以指定主要/次要/补丁的升级
$ pargit release version major
配置
您可以通过在项目根目录中添加一个.pargit.toml
文件来配置pargit,格式如下(所有值都是可选的)
tag_prefix = "" # prefix for tags, e.g. "v". Default is empty prefix
您还可以指定生产和开发分支的自定义名称。目前默认情况下,Pargit假设生产分支名称为master
(但未来可能有所改变)
master_branch_name = "master" # optional
develop_branch_name = "develop" # optional
对于项目不在存储库根目录中的存储库,您可以设置项目子路径配置值
project_subpath = "./project"
依赖项
~19–30MB
~543K SLoC