从WSL2(Ubuntu)如何使用在Windows本地安装的Meld作为git合并和差异工具?
这样,来自WSL的
git mergetool 和 git difftool 命令会在Windows上打开Meld。
git mergetool 和 git difftool 命令会在Windows上打开Meld。
meld
:sudo ln -s /mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe /usr/local/bin/meld
~/.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