为什么要这么做项目开始时作者认为如果成功可能会得到一些在某些方面比 C 语言版 Git 更实用的东西。作者真正想要的是一个纯 Rust 的核心库能与 Git 仓库进行规范、可靠的交互具备可重入、可链接、模块化和全面性的特点。为确保全面性还独立开发了一个 crate 来实现 CLI 界面。它完美吗Grit 并不完美但有趣且有一定实用性。它没有通过每一个测试是因为作者将测试套件中的一些部分标记为“跳过”不过对于大多数人来说Grit 库/CLI 现在已经能够完全通过与他们相关的 Git 测试套件。它仍然存在速度慢、有未测试功能、API 不够简洁、没有 Windows 版本等问题这只是第一阶段的第一个里程碑。它有什么用作者希望用 Grit 实现的主要功能是将复杂的推送/拉取功能集成到 GitButler 和其他需要网络功能的独立 Git 工具中。目前Gitoxide 和 libgit2 的网络功能存在问题而 Grit 理论上已涵盖相关内容。另一个应用场景是构建 WASM 版本用于实现各种有趣功能比如在边缘 Vercel 函数中运行几乎任何 Git 命令或者构建像 Cloudflare Artifacts 这样的工具。还可以将 Git 的部分功能作为独立的、可嵌入的库实现一些其他功能如用 Rust 构建自定义的 Git 服务器或客户端功能将完整的 Git 原生嵌入到智能体桌面应用或编辑器中。目前用 Rust 实现的完整 Git 功能构建包大约为 27M可按功能领域拆分。安全性几乎所有代码都是内存安全的只有一个模块日期/时间需要通过 FFI 与 C 语言进行交互还有一个 TTY 检查其他部分都是安全的 Rust 代码。我们是如何构建它的智能体喜欢作弊如果让智能体“让这些 Git 测试通过”它容易编写简单函数直接调用 Git 完成任务。例如对 sha256 支持的测试大语言模型可能不真正实现 sha256 支持也能让测试通过。智能体不知道自己何时破坏了东西项目进行到一半时一组并行运行的智能体破坏了测试框架的一个基本部分导致测试套件通过率大幅下降作者差点放弃项目。6 月初一个智能体发现错误并修复了测试框架通过率回升到 80% 左右作者决定完成项目。长期多任务处理出乎意料地困难协调让几个甚至几十个长期运行的智能体处理一个共享的任务列表非常困难作者主要尝试使用带有复选框的计划文件来共享任务但很混乱。项目结束时作者开始使用自己的 Ticgit 本地票务系统项目管理任务列表。资源管理作者在多个不同地方运行项目前三个在不同的并行负载下都出现了资源问题。智能体在调试和解决问题方面表现不错但问题会偶尔变化管理起来比预期困难。交接正在进行的工作交接一直是个问题由于使用多个系统和多个提供商存在很多问题。作者团队正在通过 GitButler 在 VCS 层面解决这个问题。成本和 token 使用量会迅速增加作者不确定在 Cursor 和 Anthropic 上具体花费多少大概在 10000 - 15000 美元左右。项目大致消耗了 450 亿个 token近一半的工作是通过大量短期、专注的 Cursor 云智能体使用 composer - 2 模型完成的。一些有趣的方法OpenClaw Claude Code项目开始时作者大量使用 OpenClaw 运行 Claude Code 子智能体但成本高且持续运行困难整个过程不稳定。Cursor 云智能体作者改变策略为每个需要处理的文件启动一个 Cursor 云智能体然后在每个智能体完成工作后进行合并。但该方式存在手动过程多、测试会破坏环境等问题。Cursor 云研磨模式作者最喜欢这种方式只需说“让所有 t1 测试家族通过”等待一天它就会生成一个包含 100 个提交的 PR。/goal 模式Codex 和 Claude Code 中的 /goal 模式能实现类似功能但 Codex 速度慢Claude 的模式让人困惑且常卡住。Claude 动态工作流作者在项目最后阶段尝试了全新的 Claude 动态工作流将大任务拆分处理但需要注意资源管理。有方向的方法更好作者发现当像自己亲自重写项目那样引导智能体工作时能获得最好、最快的进展。详细规划处理问题的方式逐步引导智能体避免大规模并行化而不仔细思考。许可证Git 源代码采用 GPL 许可证libgit2 代码采用 GPL 许可证但有链接例外。考虑到大型语言模型为项目生成的代码以及架构更改作者认为这个代码库并非衍生作品决定将代码以 MIT 许可证发布这可能有争议但对更广泛的 Git 社区来说是最好的选择。总结作者在 4 月份花了几周进行项目6 月第一周完成。整个实验结束后得到了超过 360000 行代码、500 多个拉取请求、7000 多次提交41715 / 42001 个测试通过99.3%。这是一次有趣的实验作者认为可以将其发展成真正对整个社区有用的东西。如果想尝试 Grit可以查看项目主页 上的详细信息。作者Scott Chacon他是 GitHub 和 GitButler 的联合创始人致力于为现代版本控制构建创新工具是《Pro Git》的作者并在全球范围内就 Git 和软件协作进行演讲。其个人网站为 X 账号为 。
用智能体重写 Git!Grit 通过超 99% 测试套件,未来潜力无限
发布时间:2026/6/11 4:08:26
为什么要这么做项目开始时作者认为如果成功可能会得到一些在某些方面比 C 语言版 Git 更实用的东西。作者真正想要的是一个纯 Rust 的核心库能与 Git 仓库进行规范、可靠的交互具备可重入、可链接、模块化和全面性的特点。为确保全面性还独立开发了一个 crate 来实现 CLI 界面。它完美吗Grit 并不完美但有趣且有一定实用性。它没有通过每一个测试是因为作者将测试套件中的一些部分标记为“跳过”不过对于大多数人来说Grit 库/CLI 现在已经能够完全通过与他们相关的 Git 测试套件。它仍然存在速度慢、有未测试功能、API 不够简洁、没有 Windows 版本等问题这只是第一阶段的第一个里程碑。它有什么用作者希望用 Grit 实现的主要功能是将复杂的推送/拉取功能集成到 GitButler 和其他需要网络功能的独立 Git 工具中。目前Gitoxide 和 libgit2 的网络功能存在问题而 Grit 理论上已涵盖相关内容。另一个应用场景是构建 WASM 版本用于实现各种有趣功能比如在边缘 Vercel 函数中运行几乎任何 Git 命令或者构建像 Cloudflare Artifacts 这样的工具。还可以将 Git 的部分功能作为独立的、可嵌入的库实现一些其他功能如用 Rust 构建自定义的 Git 服务器或客户端功能将完整的 Git 原生嵌入到智能体桌面应用或编辑器中。目前用 Rust 实现的完整 Git 功能构建包大约为 27M可按功能领域拆分。安全性几乎所有代码都是内存安全的只有一个模块日期/时间需要通过 FFI 与 C 语言进行交互还有一个 TTY 检查其他部分都是安全的 Rust 代码。我们是如何构建它的智能体喜欢作弊如果让智能体“让这些 Git 测试通过”它容易编写简单函数直接调用 Git 完成任务。例如对 sha256 支持的测试大语言模型可能不真正实现 sha256 支持也能让测试通过。智能体不知道自己何时破坏了东西项目进行到一半时一组并行运行的智能体破坏了测试框架的一个基本部分导致测试套件通过率大幅下降作者差点放弃项目。6 月初一个智能体发现错误并修复了测试框架通过率回升到 80% 左右作者决定完成项目。长期多任务处理出乎意料地困难协调让几个甚至几十个长期运行的智能体处理一个共享的任务列表非常困难作者主要尝试使用带有复选框的计划文件来共享任务但很混乱。项目结束时作者开始使用自己的 Ticgit 本地票务系统项目管理任务列表。资源管理作者在多个不同地方运行项目前三个在不同的并行负载下都出现了资源问题。智能体在调试和解决问题方面表现不错但问题会偶尔变化管理起来比预期困难。交接正在进行的工作交接一直是个问题由于使用多个系统和多个提供商存在很多问题。作者团队正在通过 GitButler 在 VCS 层面解决这个问题。成本和 token 使用量会迅速增加作者不确定在 Cursor 和 Anthropic 上具体花费多少大概在 10000 - 15000 美元左右。项目大致消耗了 450 亿个 token近一半的工作是通过大量短期、专注的 Cursor 云智能体使用 composer - 2 模型完成的。一些有趣的方法OpenClaw Claude Code项目开始时作者大量使用 OpenClaw 运行 Claude Code 子智能体但成本高且持续运行困难整个过程不稳定。Cursor 云智能体作者改变策略为每个需要处理的文件启动一个 Cursor 云智能体然后在每个智能体完成工作后进行合并。但该方式存在手动过程多、测试会破坏环境等问题。Cursor 云研磨模式作者最喜欢这种方式只需说“让所有 t1 测试家族通过”等待一天它就会生成一个包含 100 个提交的 PR。/goal 模式Codex 和 Claude Code 中的 /goal 模式能实现类似功能但 Codex 速度慢Claude 的模式让人困惑且常卡住。Claude 动态工作流作者在项目最后阶段尝试了全新的 Claude 动态工作流将大任务拆分处理但需要注意资源管理。有方向的方法更好作者发现当像自己亲自重写项目那样引导智能体工作时能获得最好、最快的进展。详细规划处理问题的方式逐步引导智能体避免大规模并行化而不仔细思考。许可证Git 源代码采用 GPL 许可证libgit2 代码采用 GPL 许可证但有链接例外。考虑到大型语言模型为项目生成的代码以及架构更改作者认为这个代码库并非衍生作品决定将代码以 MIT 许可证发布这可能有争议但对更广泛的 Git 社区来说是最好的选择。总结作者在 4 月份花了几周进行项目6 月第一周完成。整个实验结束后得到了超过 360000 行代码、500 多个拉取请求、7000 多次提交41715 / 42001 个测试通过99.3%。这是一次有趣的实验作者认为可以将其发展成真正对整个社区有用的东西。如果想尝试 Grit可以查看项目主页 上的详细信息。作者Scott Chacon他是 GitHub 和 GitButler 的联合创始人致力于为现代版本控制构建创新工具是《Pro Git》的作者并在全球范围内就 Git 和软件协作进行演讲。其个人网站为 X 账号为 。