QQuickKit

文字差異比較

比較兩段文字的差異,新增行以綠色標示,刪除行以紅色標示,即貼即比

關於此工具

文字差異比較(Text Diff)是識別兩個版本文字之間變動內容的過程,是版本控制系統(如 Git)、程式碼審查工具和文件編輯工作流的核心操作。QuickKit 的文字差異工具以逐行比較的方式顯示兩段文字的差異,新增行以綠色標示、刪除行以紅色標示——採用最長公共子序列(LCS)演算法,與 Unix diff 和 Git 使用相同的基礎。

功能特色

  • 逐行比較 — 逐行比較文字,清楚標示新增(+)、刪除(−)和未變更的行。
  • 色彩編碼輸出 — 新增行綠色、刪除行紅色、未變更行中性色——一眼即可辨識。
  • LCS 演算法 — 使用最長公共子序列動態規劃演算法,產生精確且最小化的差異輸出。
  • 變更摘要 — 在差異輸出頂部顯示新增行和刪除行的數量,快速掌握整體變動幅度。
  • 完全私密 — 所有比較均在瀏覽器中執行,您的文字不會離開裝置。

常見問題

什麼是 LCS 演算法?
最長公共子序列(LCS)演算法找出兩個序列中最長的共同元素序列,且這些元素不需要連續。在文字差異比較中,兩個行陣列的 LCS 就是未變更的行集合。不在 LCS 中的內容,若在新文字中就是新增,在舊文字中就是刪除。LCS 的時間複雜度為 O(m × n),其中 m 和 n 是行數。
這與字元層級的差異比較有何不同?
本工具在行的層級操作——識別哪些整行被新增、刪除或保留。字元層級(或單詞層級)的差異比較粒度更細,顯示一行中哪些字元發生了變化。行層級差異速度更快,對大多數程式碼和文件比較已經足夠;字元層級更適合散文編輯。
差異比較中的「未變更」是什麼意思?
未變更的行是在原始文字和修改後文字中完全相同的行。它們提供背景脈絡,幫助理解變更發生的位置。在許多差異比較視圖中,未變更的行會顯示為較淡的顏色或被折疊,以便將注意力集中在實際變動的內容上。
這個工具能偵測移動的文字區塊嗎?
不能。本工具和標準的 Unix diff 一樣,無法偵測移動。被搬移的文字區塊會顯示為從原始位置的刪除,以及在新位置的新增。偵測移動(重新命名偵測)需要在標準 LCS 差異比較之上加入額外的啟發式演算法。

延伸閱讀