新版0.3.0 更新了什么

像 IDE 一样好用的 Git diff 工具,
不用打开 IDE。

DiffCode 是一个轻量的原生 Mac Git 客户端。并排查看每一处代码改动——你自己的、同事的,或者 coding agent 的——只提交你想提交的那几行。平时只占 30–50 MB 内存。

  • 免费开源
  • macOS 14 及以上
  • Apple Silicon
  • 自动更新
DiffCode 中文界面:Mac 上的 Git diff 工具,并排对比一个 Kotlin 文件的改动,其中一行不参与这次提交
整个安装包

4MB

小到可以随手一试。

IDE 的安装包动辄上 GB。DiffCode 的安装包只有 4 MB 左右,不用注册账号,也没什么要配置的:下载、打开一个仓库就能用;不合适,直接拖进废纸篓。

为什么做 DiffCode

IDE 也能看 Git diff。只是太重了。

为了看一眼改了什么,代码补全、编译、索引和一堆插件也跟着启动:打开要等,还要占掉几个 GB 内存。AI 和同事写的代码越来越多,看改动这件事一天要做很多遍。DiffCode 是更轻量的选择:只留下你真正要用的部分——Git diff、提交和历史。

你的 IDE−6
  • −代码补全
  • −编译和构建
  • −索引
  • −插件
  • −调试器
  • −几个 GB 内存
DiffCode+6
  • +能直接改的并排 diff
  • +精确到行的提交
  • +Git 树和提交历史
  • +给 coding agent 用的终端
  • +跨所有仓库的搜索
  • +30–50 MB 内存
30–50MB日常使用的内存
40ms打开 3 万行的 diff
0你动手之前,对仓库的写入
功能

代码审查需要的都在。不需要的都不在。

DiffCode 首先是一个 Git diff 工具,其次才是 Git 可视化客户端:每个功能都围绕三件事——读懂改动、决定留下什么、把它提交。

按行提交

只提交你选中的那几行。

取消勾选某一处改动,或者选中几行不提交,这次只提交其余部分;没提交的留在工作区,下次再说。

  • 修改上次提交(Amend)、撤销刚才的提交,⌥⌘K 提交并推送。
  • Git 钩子照常运行,失败时显示原始输出。
  • 回滚整个文件或单处改动,⌘Z 就能找回。
为 coding agent 设计

看清 agent 改了什么。

在内置终端里跑 Claude Code、Codex 或任何命令行 agent,它改的每个文件都实时出现在上方的 diff 里:哪行不对直接改,不要的回滚,满意的才提交。

DiffCode 内置终端运行脚本,上方的 Git diff 随之实时更新
Git 历史

分支和历史,点一下就在。

点分支名打开 Git 树:左边分支、标签、远程,右边提交图,用下拉框展示,不额外占一栏。检出、合并、变基、拣选、还原、重置,做完都能撤销。

DiffCode 的 Git 树下拉框:分支、标签和提交图
合并冲突

合并冲突,一处一处地解决。

每处冲突上都有「保留 HEAD」「采用传入」「两者都要」。横幅一直显示合并或变基的进度,可以继续、跳过或中止,解决完提交合并。

在 DiffCode 里解决 Git 合并冲突:保留 HEAD、采用传入、两者都要
所有仓库

所有 Git 仓库,一个窗口。

侧边栏列出所有项目,带分支、领先 / 落后数和变更数。⇧⇧ 随处搜索,查找文件支持驼峰模糊匹配,基于 git grep 的在文件中查找可以跨所有项目。

DiffCode 跨 Git 仓库在文件中查找:结果列表和预览
细节

好用的代码对比工具,细节都在。

直接改

在 diff 的工作区一侧直接打字,停手约 1 秒自动保存,编码和换行符逐字节保持原样。

并排或单栏 diff

词级高亮、曲线连接带、变更总览条,⌥⌘V 在两种视图之间切换。

常用语言都有语法高亮

Kotlin、Java、Swift、TypeScript、Python、Go、Rust、C/C++、C#、Dart 等,还能对比图片、忽略空白。

Stash

暂存本地改动,在列表里应用、弹出或删除,删除也能撤销。

从终端打开

在仓库里运行 dif,或者 dif ~/work/app ~/work/lib,就能在 DiffCode 里打开;也可以把文件夹拖进侧边栏。

深色或浅色,中文或 English

深色、浅色或跟随系统,代码、界面、终端字号分别可调;界面语言跟随系统,也能在设置里切换。

键盘

手不用离开键盘。

DiffCode 里所有操作都有快捷键,在应用里按 ⌘/ 查看全部。

F7下一处改动,到底进入下一个文件
⌘↩提交
⌥⌘K提交并推送
⇧⇧随处搜索
⇧⌘F在文件中查找
⌥⌘Z回滚文件或单处改动
⌥⌘BGit 树
⌥⌘T把文件路径交给 agent
隐私

你的代码只留在你的 Mac 上。

没有账号,没有遥测

只有你获取、拉取、推送时(通过你自己的 git、凭据和 SSH agent),以及检查更新时才会联网。

你不动手,它不写入

刷新、diff、搜索都不写仓库,也不占 index.lock,可以和 IDE、agent 同时开着。

做了都能撤销

回滚、删除、改写历史都能撤销;删除的文件进废纸篓,危险操作先确认。

FAQ

常见问题

还有别的问题?到 GitHub 讨论区提问,或者提交 issue。

DiffCode 免费吗?

免费。DiffCode 是开源软件,采用 GNU 通用公共许可证 v3.0,没有账号、订阅或付费版本,源码在 GitHub 上。

DiffCode 是做什么用的?

它是 Mac 上的 Git diff 和代码对比工具,用来查看和提交 Git 仓库里的改动:并排或单栏显示 diff,可以直接改、按行提交,也能处理分支、历史、Stash 和合并冲突。它不是代码编辑器,也不是 IDE。

和直接打开 IDE 有什么区别?

IDE 会同时启动代码补全、编译、索引和插件,常常要占几个 GB 内存。DiffCode 只保留 diff、提交、历史和终端,所以打开快,平时只占 30–50 MB 内存。

DiffCode 有多大?

安装包大约 4 MB,装好后大约 8 MB。它是原生 AppKit 应用,没有打包浏览器内核或额外的运行时,所以启动快,平时只占 30–50 MB 内存。

能看 Claude Code 或 Codex 改了什么吗?

能。在 DiffCode 的内置终端里(或者任何地方)运行 agent,它改的每个文件都会实时出现在 diff 里。「与分支比较」可以一次看完 agent 自分叉以来的全部改动。

能只提交文件的一部分吗?

能。取消勾选某一处改动,或者选中几行不提交,这些改动会留在工作区,下次再提交。

DiffCode 会改动我的仓库吗?

你不动手,它就不写入。刷新、diff 和搜索都不写仓库,也不占 index.lock,可以和 IDE、终端、agent 同时开着。

支持哪些 Mac?

运行 macOS 14 Sonoma 及以上的 Apple Silicon Mac,Intel Mac 未经测试。应用经过 Apple 签名和公证。

DiffCode 怎么更新?

应用会自己检查更新,并在应用内安装新版本。你也可以随时在 GitHub 下载最新版本。

DiffCode 应用图标

下载 DiffCode Mac 版。

免费开源。经过 Apple 签名和公证,装好后会自动更新。

打开 DiffCode.pkg,按提示完成安装。需要 macOS 14 Sonoma 及以上、Apple Silicon。
更新说明 · 从源码构建 · 所有版本