在 Mac 上读懂 Git 改动
Yenpo 是一款原生 Mac 源码阅读应用,也能审查已提交的 Git 改动。打开本地仓库,选择提交或分支,从变更文件树进入只读的行内 diff,围绕确定的版本分析补丁改变了什么。
v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)
把补丁和相关源码一起读
想弄清一个提交的作用、审查功能分支,或调查可能的回归时,可以用 Yenpo。对比固定到具体的 base 和 head 提交;分支之后更新,也不会改变正在审查的范围。需要看新提交时,再打开一个新对比。
浏览 diff、打开文件、搜索本地代码都不需要模型账号。安装了对应语言服务器、且它能理解项目时,还可以借助导航查找定义和引用。
看一个提交、两个分支末端,还是分叉以来的改动
这个提交改了什么?
提交
第一个父提交 → 选中的提交;根提交与空树比较。
检查一个补丁;合并提交只显示相对第一个父提交的改动。
两个分支现在差在哪?
直接比较
选定的 base 分支末端 → head 分支末端。
比较两个已提交的快照;任一分支上的改动都可能影响结果。
这个分支从分叉以来改了什么?
分叉以来
共同祖先(merge base)→ 选中的 head。
查看功能分支引入的改动;这种比较不会模拟合并或预测冲突。
几行改动,也可能依赖没改过的代码
在 Promise 缓存案例里,拒绝处理函数会从缓存中删除失败的读取。没改过的 invalidate 函数让这段清理变得危险:调用方可以在读取 A 尚未结束时使它失效,再发起读取 B。随后 A 失败,清理逻辑删掉 B,下一次调用便重复读取。
- 先从变更文件树打开行内 diff,读修改过的函数。
- 再读与它交互的函数,找出能触发这个顺序的调用方。注意每个标签页的版本:当前工作文件可能与选中的 head 不同。
- 回到基线版本,区分本次引入的回归和原有问题。自己运行针对性的测试,确认怀疑的顺序是否能复现。
围绕选定的对比提问
对比栏可以准备一份附加了当前对比的 AI Reader 草稿。核对内容后再发送。对比对话始终只读;请沿源码引用核对每个发现,并自己运行建议的测试。
AI 审查需要先配置模型服务商。问题和相关代码会发送到该服务商的端点,使用范围与费用由其账号和定价决定。本地查看 diff 无需这一步。
等 AI 下次改完代码,
用它看看。
改动、diff 和搜索打开就能用。想问 AI Reader 时,再连接模型服务商。
下载 EAPApp 界面支持英文、简体中文、繁体中文、日语、西班牙语、巴西葡萄牙语、韩语、德语、法语和俄语。
v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)