什麼是文字比對(Diff)?
當你有同一份文件的兩個版本——改前改後的稿子、兩份設定檔、貼上來的兩段程式碼——最快看出「差在哪」的方法就是 diff。這個文字比對工具把兩段文字並排比對,用顏色標出新增(綠)與刪除(紅),並可切換「行」或「字」層級。全程在你的瀏覽器本機完成,不上傳。
如何使用
- 把「原始」與「修改後」兩段文字分別貼進左右兩欄。
- 結果會即時顯示;下方標出共新增幾行、刪除幾行。
- 需要看句內細節時,切換到「字」比對。
常見用途
- 比對程式碼或設定檔的兩個版本。
- 看合約、文案改了哪裡。
- 找出兩份清單的差異。想先清理格式再比,可用文字清理器。
只改一個字,為什麼整行都變紅綠?
用行比對時,只要一行裡有任何一個字元不同,整行就算「改過」——會顯示成一紅一綠(舊行刪掉、新行加回),即使你只改了一個字。這不是 bug,是行層級比對的定義。想精準看出「一句話裡到底哪個字變了」,切到「字」比對即可,它會只把不同的字標色。反過來,程式碼、設定檔、清單這類「以行為單位」的內容,用行比對最清楚。另外提醒:diff 是逐字精確的,兩份只差在行尾空白或換行符時會顯得很雜——先用文字清理器統一格式再比,真正的差異才會浮出來。
四種修改,分別長什麼樣?
這一頁對四種修改實際回傳的結果。改一個字:the quick brown fox − jumps over the lazy dog + jumps over the lazy cat —— 共同的那行沒有標記,有變動的那行出現兩次。插入一行:alpha + beta gamma,刪掉一行:alpha − beta gamma —— 各只有一行被標記,所以「相鄰的一減一加」代表修改,「單獨一個標記」才是真的插入或刪除。而只把三個詞從一行改成三行、內容完全沒動:
−
one two three
+
one
+
two
+
three每一行都被標記了。行是這裡的比較單位,所以重新排版會毀掉 diff —— 這也是為什麼「統一換行符」要跟真正的修改分成兩個 commit。