M1芯片Mac Mini上Diffmerge无法识别SourceTree冲突临时文件
强制用Rosetta运行Diffmerge
M1芯片的架构兼容性是核心诱因之一。找到Applications文件夹里的Diffmerge,右键选择「显示简介」,勾选「使用Rosetta打开」,重启Diffmerge后再尝试解决冲突。修改SourceTree的Diffmerge调用参数
打开SourceTree偏好设置 → 差异比较 → 外部差异比较工具,选择「自定义」,配置如下:
命令:/Applications/DiffMerge.app/Contents/MacOS/DiffMerge
参数:--nosplash "$LOCAL" "$REMOTE"
针对合并冲突工具,同样选自定义,命令保持一致,参数改为:--nosplash --merge --result "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
用完整路径调用DiffMerge的可执行文件,避免直接打开.app包导致的路径解析异常。重置系统权限缓存
打开「系统设置」→「隐私与安全性」→「文件与文件夹」,先移除SourceTree和Diffmerge的全盘访问权限,重启Mac后重新添加权限,确保系统权限规则生效。校验临时文件路径大小写
M1 Mac的APFS默认大小写不敏感,但部分Git工具生成的临时文件路径可能存在大小写不一致的情况。手动打开SourceTree生成的临时文件所在目录,确认路径大小写和Diffmerge报错的路径完全匹配,必要时调整SourceTree的Git配置确保路径命名统一。
内容的提问来源于stack exchange,提问作者matthellstrom

