将 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 文件。