我安装了 Git-Bash,但我无法使用 Cygwin 访问的所有工具(vim、vimdiff)。可以在其中一个 Git 配置文件中设置吗?
3 回答
Git bash 和 msysgit 包中的相关工具是纯 Windows 可执行文件。
这就是为什么你不能在 Git bash 中运行 Cygwin 工具的原因,因为这些不是完全的 Windows 程序(它们需要cygwin.dll
,请参阅下面的 @fvu 评论)。
如果你想在 Cygwin 工具中使用 Git,你必须安装 Cygwin 的 git 包。
You might just need to add the cygwin bin directory to your $PATH variable in git bash.
Despite what everyone else seems to think they know, Git Bash is actually pretty much repackaged Cygwin. Viz: https://github.com/msysgit/msys/tree/master/winsup/cygwin
如果将 Cygwinbin
目录添加到$PATH
git bash 中的变量,请确保使用 Git 2.27(2020 年第二季度)。
通过run_command()
API 运行的实用程序在 Cygwin 上未正确生成,当它们的路径以带有反斜杠的完整路径给出时。
请参阅Andras Kucsma ( ) 的提交 05ac858(2020 年 3 月 27 日)。(由Junio C Hamano 合并 -- --在d01b722 提交中,2020 年 4 月 22 日)r0mai
gitster
run-command
: 在 Cygwin 上正确触发 PATH 查找签字人:Andras Kucsma
在 Cygwin 上,类 POSIX 系统的代码路径位于
run-command.c
::start_command() 中。调用辅助函数来决定是否需要在prepare_cmd()
PATH 中查找命令。当且仅当其中没有任何斜杠“/”时,进行路径查找的逻辑是。如果此测试通过,我们最终会尝试通过在 PATH 的每个冒号分隔的组件之后附加字符串来运行命令。Cygwin 环境支持 Windows 和 POSIX 样式路径,因此正斜杠“/”和反斜杠“\”都可以用作用户提供的任何外部程序的目录分隔符。
在 PATH 中错误地搜索而不是按原样执行的路径字符串的示例:
"C:\Program Files\some-program.exe" - "a\b\c.exe"
为了处理这些问题,通过引入path) 辅助函数来抽象出真正的 POSIX 和 Cygwin 系统之间的差异,让
PATH
查找检测逻辑prepare_cmd()
了解这个 Cygwin 怪癖。has_dir_sep(