1 个不稳定版本
0.1.0 | 2023 年 8 月 24 日 |
---|
#4 在 #bisect
29KB
522 行
git-assist
概述
友好的 git 助手。
安装
通过以下方式安装 git-assist
cargo install git-assist
用法
git-assist
目前实现了以下 git 命令的辅助功能
gitbisect
git-assist
目前实现了以下与 git bisect
相关的命令
gitassist bisect skip-pull-requests[选项]
Usage: git-assist bisect skip-pull-requests [OPTIONS]
Options:
--remote-url <REMOTE_URL> Remote url to fetch pull requests from
--good <GOOD> A known "good" commit
--bad <BAD> A known "bad" commit
--dry-run Perform a "dry" run
-h, --help Print help
大多数选项可以以命令行参数的形式传递,也可以在之后交互式地输入。
为什么 `skip-pull-requests` 子命令很有用?
Github 支持三种合并方案
- 合并:当你在 GitHub.com 上的拉取请求中点击默认的“合并”选项时,功能分支的所有提交都会作为一个合并提交添加到基分支。拉取请求使用 --no-ff 选项进行合并。
- 压缩合并:当你在 GitHub.com 上的拉取请求中选择“压缩合并”选项时,拉取请求的提交会被压缩成一个单独的提交。
- 变基合并:当你在 GitHub.com 上的拉取请求中选择“变基合并”选项时,主题分支(或头分支)的所有提交都会单独添加到基分支,而不产生合并提交。
这些方案各有优缺点,当运行 git bisect 来查找引入错误的提交时。
- 合并:没有清晰的线性历史,因此有歧义。
- 压缩合并:在压缩过程中基本会丢失大量有用的信息,这会影响 git bisect 的正常运行。
- 变基合并:除非你的所有提交都能在所有时间将项目置于可构建状态,否则运行 git bisect 将是一件既嘈杂又费力的工作。
那么,如果能将“压缩合并”的便利性与“变基合并”的历史保留特性结合起来会怎样?
skip-pull-requests
子命令的作用
- 从与仓库远程 URL 相关的拉取请求中获取所有拉取请求。
- 过滤掉与
good..bad
提交范围不重叠的任何拉取请求。 - 为每个拉取请求运行(或在
--dry-run
的情况下仅打印)git bisect skip base..head^
。
skip-pull-requests
子命令的一般用法如下
git bisect start
git assist bisect skip-pull-requests --good <GOOD> --bad <BAD> ...
git bisect good <GOOD>
git bisect bad <BAD>
...
贡献
请阅读 CONTRIBUTING.md 了解我们的 行为准则,以及向我们提交拉取请求的过程。
和提交拉取请求的流程。
版本控制
我们使用 SemVer 进行版本控制。有关可用版本,请参阅本存储库的 标签。
许可证
本项目采用 MPL-2.0 许可证 - 详细内容请参阅 LICENSE.md 文件。
依赖项
~20–38MB
~616K SLoC