如何在 WSL2 上将 Meld 用作 git mergetool & difftool?
How to use Meld as git mergetool & difftool on WSL2?
从 WSL2 (Ubuntu) 如何使用 Windows 上本地安装的 Meld 作为 git 合并和差异工具?
因此来自 WSL 的 git mergetool
和 git difftool
之类的命令在 Windows.
上打开 Meld
通过链接使 meld
在 WSL 中易于访问:
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
从 WSL2 (Ubuntu) 如何使用 Windows 上本地安装的 Meld 作为 git 合并和差异工具?
因此来自 WSL 的 git mergetool
和 git difftool
之类的命令在 Windows.
通过链接使 meld
在 WSL 中易于访问:
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