Git-2.5.2.2-64位版本在合并冲突时无法使用vimdiff

6
我在Win7中使用git bash。升级到Git-2.5后,当我遇到合并冲突时,git会说无法执行shell C:/Program Files/Git/usr/bin/bash。
我已经将vim和git添加到路径中。
如何修复它?谢谢!

enter image description here

enter image description here


我在升级到git 2.5后遇到了同样的问题,gvim diff停止工作。和你一样,出现了E810和E97错误。我认为这与bash调用外部程序的方式有关,但迄今为止还没有找到任何解决方案。 - roqvist
我回滚到安装git-1.9-preview,它与vimdiff很好地配合使用。这个错误很奇怪。 - viscroad
我在Windows上找到了一些其他的合并工具。其中一个是meld,另一个是p4merge。后者对我来说更直观。但我还想找到一些解决这个错误并让我回到vimdiff的方法。 - viscroad
2个回答

4

两件事,1)我认为你的意思是 MSYS_NO_PATHCONV=1 git mergetool,2)我想补充一下,你可以将 export MSYS_NO_PATHCONV=1 放在你的 .bash_profile 中或使用别名,例如 git config --global alias.mt MSYS_NO_PATHCONV=1 git mergetool 然后使用 git mt... 此外,应该有一种方法可以通过执行 git config --global mergetool.vimdiff.cmd <something> 来纠正这个问题,但我不知道要放什么。 - Captain Man
1
永远不要全局使用 MSYS_NO_PATHCONV=1export 的作用是在其运行后打破全局命令。当此环境变量设置为 1 时,将阻止 msys2 运行时自动将形式为 /mingw64/bin/ 的 POSIX 路径转换为其 Windows 等效路径。这将破坏许多未准备好处理 POSIX 路径的工具。例如,尝试执行 MSYS_NO_PATHCONV=1 gitk,甚至无法启动任何内容。如果它是一个良好合理的默认值,则已经设置为 1。好的用法是每次调用一次。所以,请不要将其放入您的 .bash_profile 中。 - Matt
@Yang,请移除你回答中的 export 部分,因为它会在调用后破坏一些东西。正确的解决方法是使用第二次调用。请参见 https://github.com/git-for-windows/git/issues/468 以获取错误报告。 - Matt

2

我将以下内容添加到我的vimrc文件中,现在似乎可以与GIT 2.5一起使用了(我猜测shell变量出了问题)

set shell=$COMSPEC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接