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命令行工具 中排名

Download history 290/week @ 2024-05-03 36/week @ 2024-05-10 318/week @ 2024-05-17 203/week @ 2024-05-24 122/week @ 2024-05-31 189/week @ 2024-06-07 290/week @ 2024-06-14 149/week @ 2024-06-21 411/week @ 2024-06-28 336/week @ 2024-07-05 175/week @ 2024-07-12 7/week @ 2024-07-19 458/week @ 2024-07-26 53/week @ 2024-08-02 647/week @ 2024-08-09 407/week @ 2024-08-16

每月 1,566 次下载

MIT/Apache 许可

91KB
2K SLoC

git disjoint

Build Status

conceptual diagram of git-disjoint operation

git-disjoint 通过将提交按问题分组到 GitHub PR 中,自动化了 PR 作者和审阅者的最佳 git 工作流程。

这鼓励提交小而独立的 PR,减少审阅者的认知负担,最大化 git 历史记录的效用,并保持周期时间低。

简短介绍

git-disjoint demo

你正在开发一个功能。在开发过程中,你创建了一些不直接实现该功能的提交。可能是一些文档改进,修复一个小错误,或者首先重构以使更改更容易,然后再进行简单的更改^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

使用

提交

  1. 将所有提交添加到单个分支中。我建议使用仓库的默认分支。

  2. 在每次提交消息中,包含对相关问题的引用。

    例如,使用Jira自动化格式

    Ticket: COOL-123
    

    Closes Ticket: COOL-123
    

    或者使用GitHub 格式

    Closes #123
    

打开PR

当您准备好

  1. 将解决每个问题的提交集合转换为各自的分支时,
  2. 推送该分支,并
  3. 创建一个草稿PR,

运行git disjoint

如何指南

如何忽略某些提交?

要忽略与某个问题相关的提交,使用--choose标志。这将打开一个菜单,您可以从中选择要创建PR的问题。

如何在没有关联问题的提交上使用git-disjoint?

使用--all标志包括没有识别到跟踪器的提交。

依赖关系

~22–37MB
~679K SLoC