如何在WSL2上将Meld用作git mergetool和difftool?

9
从WSL2(Ubuntu)如何使用在Windows本地安装的Meld作为git合并和差异工具? 这样,来自WSL的 git mergetool 和 git difftool 命令会在Windows上打开Meld。
1个回答

24
在WSL中,通过链接来轻松访问 meld:
sudo ln -s /mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe /usr/local/bin/meld

在WSL中编辑~/.gitconfig并添加:
[diff]
        tool = meld
[difftool "meld"]
        cmd = meld \"$(wslpath -aw $LOCAL)\" \"$(wslpath -aw $REMOTE)\"
[merge]
        tool = meld
[mergetool "meld"]
        cmd = meld --auto-merge \"$(wslpath -aw $LOCAL)\" \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $REMOTE)\" --output \"$(wslpath -aw $MERGED)\" --label=Local --label=Base --label=Remote --diff \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $LOCAL)\" --diff \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $REMOTE)\"

为了让git difftool --dir-diff正常工作,必须使用--no-symlinks选项(在从Windows应用程序打开时,\\wsl$\中的符号链接似乎目前无法正常工作)。一旦Meld关闭,更改仍将被复制回源文件。由于我经常使用git dir diff工具,因此我已将这些别名添加到上述文件中:
[alias]
        dt = !git difftool --dir-diff --no-symlinks -t meld
        mt = !git mergetool -t meld

1
这太像《盗梦空间》了。 - Panagiotis Kanavos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接