325 个发布版本
最新 0.10.219 | 2024 年 8 月 24 日 |
---|---|
0.10.209 | 2024 年 7 月 29 日 |
0.10.185 | 2024 年 3 月 25 日 |
0.10.149 | 2023 年 12 月 28 日 |
0.7.27 | 2022 年 11 月 22 日 |
#51 在 命令行工具 中排名
每月 1,566 次下载
91KB
2K SLoC
git disjoint
git-disjoint 通过将提交按问题分组到 GitHub PR 中,自动化了 PR 作者和审阅者的最佳 git 工作流程。
这鼓励提交小而独立的 PR,减少审阅者的认知负担,最大化 git 历史记录的效用,并保持周期时间低。
简短介绍
你正在开发一个功能。在开发过程中,你创建了一些不直接实现该功能的提交。可能是一些文档改进,修复一个小错误,或者首先重构以使更改更容易,然后再进行简单的更改^1。无论如何,你都会直接将提交推送到 master 分支^2,因为你想在代码审查和合并到主分支之前,让每个更改都保留在你的开发环境中。
当你到达一个自然的停止点时,你准备好推送几个提交。每个提交都是原子的,只与一个主题相关。它附带一个详细的提交消息,引用你的工作跟踪器中的问题,通过单元测试和文档。你不想将这些所有更改都推入一个单一的 PR,因为它们处理的是正交的关注点。你相信你的团队能够提供高质量的代码审查,并且迭代一个更改集不应该延迟无关更改的合并。
直接从你的 master 分支创建 PR,或手动将提交移动到单独的分支,这样做
git disjoint
git-disjoint 将识别哪些提交与同一问题相关,将这些提交批量到新的分支中,并创建一个 PR。
它是如何工作的?
git-disjoint会在每个提交消息中查找跟踪器^3以确定提交与哪个问题相关。默认情况下,它会为每个问题创建一个PR,并将其与您工作跟踪器中现有的一个问题关联起来。
当PR合并时,您下一次执行git pull
操作将上游的master分支从本地提交的后面移动到前面。
支持集成
如果您
- 使用工作跟踪器(支持Jira和GitHub Issues)
- 使用GitHub和拉取请求
需求
您需要一个带有repo
权限的GitHub 个人访问令牌。您可以将其导出为GITHUB_TOKEN
环境变量,或者使用--token
选项将其传递给git-disjoint
。
安装
从GitHub版本发布
安装git-disjoint
最简单的方法是从发布页面下载与您的操作系统和架构兼容的版本。
或者,使用以下包管理器之一安装git-disjoint
仓库 | 命令 |
---|---|
Cargo | cargo+nightly install git-disjoint |
Cargo binstall | cargobinstall git-disjoint |
Nix | nix profile install github:EricCrosson/git-disjoint |
使用
提交
-
将所有提交添加到单个分支中。我建议使用仓库的默认分支。
-
在每次提交消息中,包含对相关问题的引用。
例如,使用Jira自动化格式
Ticket: COOL-123
或
Closes Ticket: COOL-123
或者使用GitHub 格式
Closes #123
打开PR
当您准备好
- 将解决每个问题的提交集合转换为各自的分支时,
- 推送该分支,并
- 创建一个草稿PR,
运行git disjoint
。
如何指南
如何忽略某些提交?
要忽略与某个问题相关的提交,使用--choose
标志。这将打开一个菜单,您可以从中选择要创建PR的问题。
如何在没有关联问题的提交上使用git-disjoint?
使用--all
标志包括没有识别到跟踪器的提交。
依赖关系
~22–37MB
~679K SLoC