在 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)