Qta*_*tax 4 git meld windows-subsystem-for-linux wsl-2
从 WSL2 (Ubuntu) 如何使用在 Windows 上本地安装的 Meld 作为 git merge 和 diff 工具?所以像git mergetool&git difftool来自 WSL 的命令在 Windows 上打开 Meld。
请meld通过链接它WSL方便:
sudo ln -s /mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe /usr/local/bin/meld
Run Code Online (Sandbox Code Playgroud)
在 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)\"
Run Code Online (Sandbox Code Playgroud)
为了git difftool --dir-diff工作,您需要使用它--no-symlinks(\\wsl$\从 Windows 应用程序打开时,中的符号链接当前似乎不起作用)。关闭 Meld 后,更改仍将复制回源文件。因为我经常使用 git dir diff 工具,所以我在上面的文件中添加了这些别名:
[alias]
dt = !git difftool --dir-diff --no-symlinks -t meld
mt = !git mergetool -t meld
Run Code Online (Sandbox Code Playgroud)