Meld 是一個視覺化 diff 工具,它可讓你輕鬆比較和合併檔案、目錄、Git 倉庫等的更改。
Meld 是我處理程式碼和資料檔案的基本工具之一。它是一個圖形化的 diff 工具,因此,如果你曾經使用過 diff
命令並難以理解輸出,那麼 Meld 可以為你提供幫助。
這是該專案網站的精彩描述:
“Meld 是面向開發人員的視覺化 diff 和合併工具。Meld 可以幫助你比較檔案、目錄和版本控制的專案。它提供檔案和目錄的雙向和三向比較,並支援許多流行的版本控制系統。”
“Meld 可以幫助你檢查程式碼更改並了解修補程式。它甚至可以幫助你弄清你一直在避免的合併中發生了什麼。”
你可以使用以下命令在 Debian/Ubuntu 系統(包括 Raspbian)上安裝 Meld:
$ sudo apt install meld
在 Fedora 或類似產品上:
$ sudo dnf install meld
Meld 是跨平台的,它有一個使用 Chocolately 包管理器的 Windows 安裝包。儘管它在 macOS 上不受官方支援,但有可用於 Mac 的版本,你可以使用 Homebrew 安裝:
$ brew cask install meld
有關其他系統,請參見 Meld 的主頁。
如果你有兩個相似的檔案(也許一個是另一個的修改版本),並想要檢視它們之間的更改,那麼可以在終端中執行 diff
命令檢視它們的區別:
此例顯示了 conway1.py
和 conway2.py
之間的區別。表明我:
(object)
alive
和 neighbours == 2
的順序這是使用 meld
命令的相同例子。你可以在命令列中執行以下命令進行相同的比較:
$ meld conway1.py conway2.py
Meld 更清晰!
你可以輕鬆檢視並單擊箭頭(左右都行)合併檔案之間的更改。你甚至可以實時編輯檔案(在輸入時,Meld 可以用作具有實時比較功能的簡單文字編輯器)—只是要記得在關閉視窗之前儲存。
你甚至可以比較和編輯三個不同的檔案:
希望你正在使用 Git 之類的版本控制系統。如果是這樣,那麼你的比較就不是在兩個不同檔案之間進行,而是要查詢當前檔案與 Git 歷史檔案之間的差異。Meld 理解這一點,因此,如果你執行 meld conway.py
(conway.py
在 Git 中),它將顯示自上次 Git 提交以來所做的更改:
你可以看到當前版本(右側)和倉庫版本(左側)之間的更改。你可以看到,自上次提交以來,我刪除了一個方法,並新增了一個引數和一個迴圈。
如果你執行 meld .
,你將看到當前目錄(如果位於倉庫的根目錄,就是整個倉庫)中的所有更改:
你會看到一個檔案被修改了,另一個檔案未加入版本控制(這意味著它對 Git 是新的,因此在比較之前,我需要 git add
新增該檔案),以及許多其他未修改的檔案。頂部的圖示提供了各種顯示選項。
你還可以比較兩個目錄,這有時很方便:
即使是普通使用者也會覺得 diff 的比較難以理解。我發現 Meld 提供的視覺化在找出檔案之間的更改方面有很大的不同。最重要的是,Meld 有一些有用的版本控制認知,可以幫助你在不考慮太多內容的情況下對 Git 提交進行比較。快來試試 Meld,並輕鬆解決問題。
本文最初發表在 Ben Nuttall 的 Tooling blog 上,並經允許重新使用。