將 Meld 設定為 Git 的 Difftool 和 Mergetool

John Wachira 2023年1月30日 2022年7月18日
  1. 將 Meld 配置為預設 Git Difftool
  2. 將 Meld 配置為預設 Git Mergetool
將 Meld 設定為 Git 的 Difftool 和 Mergetool

本文將討論將 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 檔案。

Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

相關文章 - Git Diff