Diff 格式化工具
比較文字和程式碼差異,具有格式化高亮和並排檢視
原始版本
修改後
Diff 結果
使用提示
- 在兩段文字中使用一致的縮排,以獲得更準確的逐行比較。
- 統一檢視適合小改動。並排檢視適合較大的差異。
- 新增 刪除 變更
- 使用交換按鈕反轉比較方向,將新增視為刪除來查看。
- 在任一輸入框按 Ctrl/Cmd + Enter 即可開始比對。
兩種 Diff 模式,自動選擇
Data Diff 會根據您貼上的內容自動判斷。當兩側都能解析為 JSON 時會切換為結構化 diff;其他情況則逐行比對。您也可以使用結果上方的分頁手動鎖定模式。
JSON 結構化 Diff 會回報哪些內容
- Added(新增)——僅存在於修改側的鍵或索引,並顯示其值的預覽。
- Removed(刪除)——僅存在於原始側的鍵或索引。
- Changed(變更)——同一路徑在兩側的值不同,以之前 → 之後呈現。
- Type changed(型別變更)——同一路徑在一側是物件,在另一側是純量或陣列。
- 每個項目都帶有路徑,採用與 JSON、XML 和 YAML Inspector 相同的 $.store.books[0].title 標記法,讓您可以直接跳到原始碼中的對應位置。
需要時的文字 Diff
逐行比對會以行號標示每個新增與刪除的行。適用於程式碼、日誌、設定檔以及任何文字——包括格式變了但資料沒變的 JSON。
範例:JSON 模式看得到、文字模式看不到的差異
下方兩個程式碼片段僅在鍵順序與縮排上不同。文字 diff 會將幾乎每一行都標為已變更;JSON 結構化 diff 則能正確報告零變更。
{
"name": "web",
"version": "1.0"
}
{
"version": "1.0",
"name": "web"
}
如何融入您的工作流程
Data Diff 是工作台中的比對步驟。可從其他工具將任何文件傳送到這裡:
常見問題解答
關於 Diff Formatter 格式化的常見問題解答
是的,我們的 Diff 格式化工具完全免費,無需註冊。所有處理都在您的瀏覽器中完成。
您可以比較任何文字內容:程式碼、設定檔、JSON、XML、純文字或任何其他文字格式。
新增的行以綠色背景顯示,刪除的行以紅色背景顯示,變更的行並排顯示兩個版本。
可以。點擊交換按鈕反轉原始和修改後的文字,將新增變為刪除,反之亦然。
工具使用 Myers 差異演算法,這與 Git 用於文字比較的演算法相同,確保準確且最小的差異。
採用 unified diff 格式(-u),也就是 git diff、diff -u 以及所有主流版本控制系統產生的格式——包含一個或多個檔案區段,每個區段都有 ---/+++ 標頭、@@ hunk 標記,以及 +/- 與 context 行。GNU diffutils 文件記載了確切格式;本格式化工具會重新編排 hunk,提供對齊的行號與語法著色。
@@ -3,7 +3,8 @@ 表示:在舊檔案中,從第 3 行開始顯示 7 行;在新檔案中,對應區段從第 3 行開始,共跨越 8 行。從這些數字就能一眼看出變更規模——這裡是新增了一行。格式化工具會完整保留這些標記,因為 patch(1) 和 git apply 都依賴它們。
不行——此工具用於格式化與解說 patch,並不會套用它們。若要套用,請使用 git apply 或 patch -p1;若要合併有衝突的 hunk,請使用您 VCS 的合併工具。格式化功能刻意設計為唯讀,因此您可以放心貼上任何 patch 進行易讀的審閱,包括含有被拒絕或衝突 hunk 的 patch。