HOWTO · Git

將 Meld 設定為 Git 的 Difftool 和 Mergetool

本文討論了將 Meld 配置為 Git 的預設差異和合並工具的過程。

本頁內容

本文將討論將 Meld 配置為 Git 的預設 diffmerge 工具。Meld 是一個很棒的 GUI diff 程式,它使我們更容易檢查檔案更改和合並結果。

第一步始終是下載和安裝程式。完成後,跟隨我們的領導。

將 Meld 配置為預設 Git Difftool

要將 Git 配置為使用 Meld 作為 difftool,我們需要更改我們的 .gitconfig 檔案。我們將以下行新增到我們的 .gitconfig 檔案中。

[diff]
    tool = meld
[difftool]
    prompt = false
[difftool "meld"]
    cmd = meld "$LOCAL" "$REMOTE"

計劃的順序將由 $LOCAL$REMOTE 引數的順序決定。在我們的例子中,我們的原始檔案 $LOCAL 將在左側,而 $REMOTE 是右側的修改檔案。

如果你想反過來,請改用它。

cmd = meld "$REMOTE" "$LOCAL"

prompt = false 部分指示 Git 不要要求確認啟動工具,預設情況下它會這樣做。

我們可以將 git difftool 命令作為 git diff 命令執行。

$ git difftool <BranchName> file_name

將 Meld 配置為預設 Git Mergetool

由於其 GUI mergetool,Meld 還可以更輕鬆地解決合併期間的衝突。同樣,我們將更改我們的 .gitconfig 檔案以將 Meld 配置為 Git 的 mergetool

將下面的行新增到你的 .gitconfig 檔案中。

[merge]
    tool = meld
[mergetool "meld"]
    # Choose one of these 2 lines
    cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
    cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"

當我們有合併衝突時,我們可以通過執行下面的命令來使用 Meld 作為我們的 mergetool

$ git mergetool

讓我們簡單看一下上面的引數。

  1. $LOCAL - 這是我們簽出分支中的檔案。
  2. $REMOTE - 這是我們試圖合併的分支中的檔案。
  3. $MERGED - 這是有合併衝突的檔案。
  4. $BASE - 這是建立包含 $REMOTE 的分支時的原始檔案。

$LOCAL$REMOTE 將在左右,這取決於你在 cmd 中的順序,你可以在中間有 $BASE$MERGED。Meld 允許 3 向檢視,我們應該編輯中間檔案以解決衝突。

編輯完成後,我們可以關閉程式,Git 會自動更新檔案。此時,我們已準備好提交更改並完成合並。

或者,我們可以在 Bash 上執行一些命令來更新我們的 .gitconfig 檔案。

對於 Windows 使用者,請執行這些命令。

$ git config --global diff.tool meld
$ git config --global difftool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global difftool.prompt false

$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global mergetool.prompt false

確保你輸入正確的路徑到你的 MELD.exe 檔案。

Linux 使用者可以使用下面的命令來更新他們的 .gitconfig 檔案。

$ git config --global diff.tool meld
$ git config --global difftool.meld.path "/usr/bin/meld"
$ git config --global difftool.prompt false

$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "/usr/bin/meld"
$ git config --global mergetool.prompt false

使用你機器上的正確安裝路徑更新上面的程式碼。

簡而言之,Git 最初的 diffmerge 介面並不吸引人。但是,我們可以將 Git 配置為使用 Meld 作為預設的 GUI difftoolmergetool

你需要做的就是按照上述步驟更新你的 .gitconfig 檔案。