文字比對
逐行比對兩段文字,清楚看出新增與刪除的內容,可忽略大小寫或空白,也可只顯示有差異的行。全部在瀏覽器中執行。
在你的瀏覽器中執行
結果怎麼看
兩邊的行會先用 git diff 所使用的同一套演算法對齊,再以單欄顯示:刪除的行標 -,新增的行標
+,沒有變動的行不標記。左側兩個數字分別是原始版本與修改後版本的行號——這正是告訴你「左邊第
40 行就是右邊第 37 行」的依據。
被修改過的行會顯示成先刪除、再新增。逐行比對沒有「修改」這個概念:一行要嘛相同,要嘛不同。
忽略空白
當畫面上滿是看起來一模一樣卻被標為差異的行時,就該打開這個選項。常見原因有:
- 換行字元。 在 Windows 編輯過的檔案是
\r\n,同一個檔案在 Unix 上是\n。每一行都不同, 但畫面上看不出任何差別。 - 重新排版。 跑過一次格式化工具,或把 Tab 換成空格,整份檔案每一行都變了,實際行為卻沒變。
- 行尾多餘的空白,而多數編輯器預設不會顯示它。
開啟後,比對會在去除首尾空白、把連續空白視為一個之後才進行,畫面上顯示的仍是你貼上的原文。
演算法為什麼重要
單純從第一行開始一對一比較很容易,但沒有用:在最前面插入一行,後面每一行都會被判定為不同。改成 尋找最長共同子序列——也就是在兩邊都出現、順序也相同的最大集合——就只會回報那一行新增,其餘保持 不變。
本頁採用 Myers 演算法,成本取決於兩段文字有多「不同」,而不是有多長,所以兩份幾乎相同的千行檔案 可以瞬間比對完成。如果兩段文字幾乎毫無共通之處,就不存在有意義的對齊方式,結果會以整段替換呈現。
你的資料只留在這裡
兩段文字都在你的瀏覽器中比對,不會上傳。在貼上兩個版本的合約、設定檔,或任何你不會交給陌生 伺服器的內容之前,這點值得先知道。