首页 > 解决方案 > 适用于 Linux 的 Windows 子系统 git mergetool meld UnicodeDecodeError

问题描述

我是 WSL(Linux 的 Windows 子系统)用户。我使用 WSL 在我的主机和远程编译机 (RedHat) 之间简单地 rsync 源代码。我找到了这样一篇文章:

https://www.deptagency.com/en-gb/story/using-meld-as-a-git-merge-tool-on-windows/

它触发和运行从 WSL 融合的 GUI 窗口。

但是在按照本文的步骤进行操作后,我收到了这个错误消息(我检查了是否通过了 Windows EoL):

回溯(最后一次调用):文件“bin/meld”,第 328 行,在结构化日志适配器 UnicodeDecodeError:'utf-8' 编解码器无法解码位置 103 中的字节 0x93:无效的起始字节

你有什么想法?

提前谢谢,BR

标签: gitutf-8windows-subsystem-for-linuxmeldmergetool

解决方案


您是否尝试过当前版本的 Meld https://meldmerge.org/。我按照提供的链接https://www.deptagency.com/en-gb/story/using-meld-as-a-git-merge-tool-on-windows/没有任何问题。

详细步骤

从https://meldmerge.org/在 Windows 10 上下载并安装 meld

导航到您的 wsl 终端创建一个脚本以将内容传递给 meld

nano meld
#!/bin/bash

/mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe $@

使脚本可执行

sudo chmod +x meld

将脚本移至/usr/bin

sudo mv meld /usr/bin

然后,在~/.gitconfig添加/编辑以下

[merge]
    tool = meld
[mergetool "meld"]
    cmd = meld --diff \"$BASE\" \"$LOCAL\" \"$REMOTE\" --output \"$MERGED\"

导航到有合并冲突的 git 目录

git mergetool

享受!


推荐阅读