轻松掌握代码审查:difit——你的本地Git差异查看神器
在软件开发的日常工作中,代码审查是一项不可或缺的任务。无论是修复错误、优化代码,还是与团队协作,审查代码都能帮我们提升质量,确保项目顺利推进。然而,很多时候我们依赖像GitHub这样的在线平台来查看代码差异,这在网络不佳或需要快速本地检查时可能会不太方便。今天,我要给大家介绍一款简单又强大的工具——difit。它是一个命令行工具,能让你在本地查看Git提交的差异,还带来了许多实用功能,让代码审查变得更加轻松有趣。
什么是difit?
简单来说,difit是一个轻量级的命令行工具(CLI),可以在你的电脑上启动一个类似GitHub的差异查看器。无论是查看某次提交的改动,还是比较两个分支的差异,它都能帮你快速搞定。它的最大特点是“零配置”——不需要繁琐的设置,安装后直接运行命令就能用起来。
想象一下:你打开终端,输入一行命令,浏览器里就弹出一个清晰的页面,展示代码的改动细节,就像在GitHub上浏览“Files changed”页面一样。不仅如此,你还能在代码旁边添加评论,甚至把这些评论直接复制给AI工具使用。这对喜欢在本地审查代码的开发者来说,简直是得力助手。
为什么选择difit?
difit并不是简单地把Git命令包装一下,它带来了一些独特的功能,让代码审查更高效:
-
简单上手:只需输入 npx difit <commit>
,就能立刻查看差异。 -
AI友好:可以在代码中添加评论,并生成AI能直接用的提示,方便与智能工具配合。 -
终端模式:通过 --tui
选项,你能在终端里直接查看差异,不用打开浏览器。 -
多语言支持:自动识别代码语言并高亮显示,阅读更轻松。 -
GitHub集成:直接查看GitHub上的Pull Request差异。
这些特点让difit非常适合那些想在本地快速审查代码,又不想依赖网络工具的开发者。
快速上手:如何使用difit?
想要试试difit?只需要在你的Git项目文件夹里打开终端,输入以下命令:
npx difit
运行后,difit会自动在浏览器中打开一个页面,展示你最近一次提交的代码差异。是不是很简单?接下来,我会详细介绍它的各种用法,让你充分发挥它的潜力。
核心功能详解
1. 查看单次提交的差异
想看看某次提交具体改了什么?difit支持多种方式指定提交:
npx difit 6f4a9b7 # 查看某个特定提交(用commit hash)
npx difit HEAD^ # 查看上一次提交
npx difit feature # 查看feature分支的最新提交
运行这些命令后,你会看到一个直观的页面,显示文件改动的地方,新增的代码用绿色标出,删除的用红色,清晰明了。
2. 比较两个提交或分支
有时候,我们需要知道两个版本的代码有什么不同,比如当前工作和主分支的差异。difit也能轻松搞定:
npx difit HEAD main # 比较当前HEAD和main分支
npx difit feature main # 比较feature分支和main分支
npx difit . origin/main # 比较当前工作目录和远程main分支
这种比较功能特别适合在合并代码前,快速检查改动是否符合预期。
3. 检查未提交的改动
还没提交的代码也能用difit查看。它支持几个特殊参数:
-
.
:显示所有未提交的改动(包括已暂存和未暂存的)。 -
staged
:只看已暂存的改动。 -
working
:只看未暂存的改动。
试试这些命令:
npx difit . # 查看所有未提交的改动
npx difit staged # 查看已暂存的改动
npx difit working # 查看未暂存的改动
这对检查当前工作状态非常有用,尤其是当你改了很多文件,想理清思路时。
4. 审查GitHub Pull Request
如果你的项目在GitHub上,difit还能直接查看Pull Request的差异:
npx difit --pr https://github.com/owner/repo/pull/123
它会自动处理身份验证。你可以用GitHub CLI登录(推荐)、设置GITHUB_TOKEN
环境变量,或者直接查看公开仓库(可能有限制)。这让远程协作审查变得更方便。
评论系统:让审查更智能
difit不仅能看差异,还能让你在代码旁边加注释。这对记录意见或与AI工具协作特别有用。
-
添加评论:在diff页面上,点击某一行,就能输入你的想法。
-
编辑评论:随时修改已有的评论。
-
生成AI提示:每条评论旁边有个“Copy Prompt”按钮,点击后会生成一个格式化的提示,包含文件名、行号和你的评论。比如:
src/components/Button.tsx:42 This name should probably be more specific.
-
批量复制:用“Copy All Prompt”按钮,一次性复制所有评论。
-
保存评论:评论会存在浏览器的localStorage里,按提交分开存储。
这些功能让difit不只是查看工具,还能帮你整理思路,甚至直接把意见交给AI处理。
语法高亮:代码更易读
代码审查时,清晰的展示很重要。difit支持多种编程语言的语法高亮,比如:
-
JavaScript、TypeScript -
HTML、CSS、JSON -
Python、Java、C++ -
Shell脚本、SQL、Ruby
它会根据文件后缀自动识别语言,并动态加载高亮模块。如果遇到不认识的语言,就显示纯文本,确保不会出错。这种设计既实用又高效。
更多选项:定制你的体验
difit还提供了一些命令行选项,让你根据需要调整:
选项 | 默认值 | 说明 |
---|---|---|
<commit-ish> |
HEAD | 指定提交:hash、分支、HEAD~n等 |
[compare-with] |
(可选) | 比较的第二个提交 |
--pr <url> |
– | 查看GitHub PR的URL |
--port |
自动 | 设置端口号 |
--host |
127.0.0.1 | 设置主机地址(0.0.0.0可外部访问) |
--no-open |
false | 不自动打开浏览器 |
--mode |
side-by-side | 差异模式:并排或内联 |
--tui |
false | 用终端界面代替网页 |
--clean |
false | 启动时清除已有评论 |
比如,想在终端看差异,可以用:
npx difit --tui
或者不想打开浏览器:
npx difit --no-open
这些选项让difit非常灵活,适应不同场景。
开发与贡献
如果你是开发者,想自己动手改进difit,可以试试这些命令:
# 安装依赖
pnpm install
# 启动开发模式(支持热重载)
pnpm run dev
# 构建并运行生产模式
pnpm run start <commit-ish>
# 构建生产版本
pnpm run build
# 运行测试
pnpm test
# 检查代码格式
pnpm run lint
pnpm run format
difit的架构也很清晰:
-
命令行:用Commander.js处理输入。 -
后端:Express和simple-git生成差异。 -
前端:React 18 + TypeScript + Vite。 -
样式:Tailwind CSS,模仿GitHub暗色主题。
有兴趣的话,可以看看它的代码,提点建议或者加点新功能。
使用要求
要用difit,你需要:
-
Node.js 版本 ≥ 21.0.0 -
一个有提交记录的Git仓库
安装非常简单,因为npx
会自动帮你下载和运行。
一点实际体验
我最近用difit审查自己的项目,感觉真的很方便。比如,我改了一个功能分支,想看看跟主分支的差别,直接跑了:
npx difit feature main
页面一打开,所有改动一目了然。我还在几个地方加了评论,比如提醒自己“这里变量名可以更清楚点”。后来直接把这些评论复制给AI工具,让它帮我优化代码,省了不少时间。
还有一次,我在没网的地方调试代码,用npx difit --tui
在终端里检查未提交的改动,照样顺畅完成任务。不得不说,difit确实让本地审查变得轻松了不少。
总结
difit是一款为开发者量身打造的工具,它把Git差异查看搬到了本地,还加入了评论和AI集成功能。不管你是想快速检查代码,还是准备和团队协作,它都能帮上忙。它的设计简单实用,既适合新手,也能满足老手的定制需求。
如果你也想让代码审查更高效,不妨试试difit。装上它,跑几条命令,也许你会发现它很快成为你工具箱里的常客!