git

GitButler:重新设计的Git分支管理工具

Git分支管理工具,从头开始构建,适合现代工作流程。

2024年2月23日
gitbutler
分享

GitButler 是一个 git 客户端,可让您同时在多个分支上工作。它允许您快速将文件更改组织到单独的分支中,同时仍然将它们应用到您的工作目录。然后,您可以将分支单独推送到远程,或直接创建拉取请求。

简而言之,它是git add -pgit rebase -i的更灵活版本,允许您跨分支高效地执行多任务。

它是如何工作的?

GitButler 在 Git 之上用一层跟踪未提交的更改。对文件或文件部分内容的更改可以分到我们所说的虚拟分支。只要您对虚拟分支的内容感到满意,就可以将其推送到远程。GitButler 确保其他虚拟分支的状态保持独立。

GB 的虚拟分支与 Git 分支有何不同?

我们在 Git 中了解和喜爱的分支是独立开的,它们之间的切换是完整的上下文切换。GitButler 允许您在同一工作目录中并行处理多个分支。这实际上意味着多个分支的内容同时可用。

GitButler 在提交之前就知道更改。这使得它能够记录每个单独的差异属于哪个虚拟分支。实际上,这意味着您可以随时将各个分支及其内容分开,以将它们推送到远程或从工作目录中取消应用它们。

最后,在 Git 中,您一般需要提前创建所需的分支,而使用 GitButler 您可以在开发过程中的任何时候在虚拟分支之间移动更改。

为什么选择 GitButler?

我们喜欢 Git。我们自己的@schacon甚至出版了Pro Git书。与此同时,Git 的用户界面已经 15 年没有发生根本性改变。虽然它是为 Linux 内核开发人员通过邮件列表相互发送补丁而编写的,但如今大多数开发人员都有不同的工作流程和需求。

我们不是尝试将 Git CLI 的语义融入图形界面,而是从开发人员工作流程开始,并将其映射回 Git。

技术

GitButler 是一个基于Tauri的应用程序。它的 UI 是使用TypeScript语言,用Svelte编写的,后端是用Rust编写的。

主要特性

  • 虚拟分支
    • 同时组织多个分支的工作,而不是不断切换分支
    • 需要时自动创建新分支
  • 易于提交管理
    • 通过拖放来撤消、修改和合并提交
  • GitHub 集成
    • 向 GitHub 进行身份验证以打开拉取请求、列出分支和状态等
  • 便捷的 SSH 密钥管理
    • GitButler 可以自动生成 SSH 密钥上传到 GitHub
  • 人工智能工具
    • 根据您正在进行的工作自动编写提交消息
    • 自动创建描述性分支名称
  • 提交签名
    • 使用我们生成的 SSH 密钥轻松提交签名

使用示例

修复开发功能时的错误

假设在开发一项功能时,您遇到了一个想要修复的错误。通常希望将修复程序作为单独的贡献(拉取请求)来提供。

使用 Git,您可以存储更改并切换到另一个分支,您可以在其中提交并推送修复。

使用 GitButler,您只需将修复分配给一个单独的虚拟分支,您可以单独推送该分支(或直接创建 PR)。另一个好处是,您可以在等待 CI 和/或代码审查时将修复代码保留在工作目录中。

工作进行中想尝试其他人的分支

假设您想测试其他人的分支以进行代码审查。

使用 Git 尝试其他人的分支是与您自己的工作完全分开的上下文切换。 使用 GitButler,您可以直接在工作目录中应用和取消应用(添加/删除)任何远程分支。

文档

您可以在以下位置找到我们的最终用户文档:https://docs.gitbutler.com

生成AI提交消息

生成提交消息是一项可选功能。您可以在首次添加存储库时或稍后在项目设置中启用它。

目前,GitButler 使用 OpenAI 的 API 进行差异汇总,这意味着如果启用,代码差异将被发送到 OpenAI 的服务器。

我们的目标是使此功能更加模块化,以便将来您可以修改提示以及插入不同的 LLM 端点(包括本地的)。

来自:

更多文章

Stability AI出品的新一代文生图模型。

2024年2月22日 · AIGC AI
nanogpt
OpenAI前研究员Karpathy的极简版GPT。
2024年2月20日 · GPT
maybe
完全透明、开源、社区支持的个人理财应用程序。
2024年2月19日 · 财务 个人理财
sovits
1分钟的语音数据也可以用来训练一个好的TTS模型!
2024年2月19日 · 语音 语音合成 语音转换