将 Meld 设置为 Git 的 Difftool 和 Mergetool

John Wachira 2023年1月30日
  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 文件。

作者: 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