【问题标题】:Git-2.5.2.2-64-bit cannot use vimdiff when merge conflicGit-2.5.2.2-64-bit 在合并冲突时无法使用 vimdiff
【发布时间】:2015-12-09 19:06:37
【问题描述】:

我在 Win7 中使用 git bash。升级到Git-2.5后合并冲突,git说Cannot execute shell C:/Program Files/Git/usr/bin/bash.

我已将 vim 和 git 添加到路径中。

如何解决?谢谢!

【问题讨论】:

  • 升级到 git 2.5 gvim diff 后我遇到了同样的问题。和你一样的错误,E810后跟E97。我相信这与bash调用外部程序的方式有关,但到目前为止还没有找到任何解决方案。
  • 我回滚安装 git-1.9-preview,它适用于 vimdiff。这个错误很奇怪。
  • 我在 windows 中选择了一些其他的合并工具。一个是融合,另一个是 p4merge。后者对我来说以更直观的方式工作。但我也想为这个错误找到一些解决方法,然后把我拖回 vimdiff。

标签: git bash vim


【解决方案1】:

试试这个命令

MSYS_NO_PATHCONV=1 git mergetool

Git 2.5.3 Release Notes

【讨论】:

  • 两件事,1) 我认为您的意思是MSYS_NO_PATHCONV=1 git mergetool,2) 我想补充一点,您可以将export MSYS_NO_PATHCONV=1 放入您的.bash_profile 或使用别名,例如@ 987654327@ 然后使用git mt... 另外,应该有办法通过git config --global mergetool.vimdiff.cmd <something> 来纠正这个问题,但我不知道该放什么。
  • 你应该永远使用MSYS_NO_PATCHCONV=1 "globally",export 的作用是在它之后运行全局中断命令。当此环境变量设置为 1 时,它将阻止 msys2 运行时自动将形式为 /mingw64/bin/ 的 POSIX 路径转换为它们的 Windows 等效路径。这将破坏许多尚未准备好处理 POSIX 路径的工具。例如尝试MSYS_NO_PATHCONV=1 gitk,它甚至会在没有启动任何东西的情况下失败。如果它是一个良好的、健全的默认值,那么它已经被设置为 1。良好的用法是基于每次调用的。所以,请不要把它放在你的.bash_profile 中。
  • @Yang,请删除答案中的export 部分,因为它会在调用后破坏内容。正确的解决方法是使用第二次调用。有关错误报告,请参阅 github.com/git-for-windows/git/issues/468
【解决方案2】:

我将它添加到我的 vimrc 中,现在它似乎可以使用 GIT 2.5 为我工作(我猜 shell 变量搞砸了)

set shell=$COMSPEC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多