Git Bash与cygwin一起运行

Git Bash与cygwin一起运行,git,cygwin,Git,Cygwin,我安装了GitBash,但是我无法访问我可以使用Cygwin访问的所有工具(vim、vimdiff)。可以在其中一个Git配置文件中设置吗?Git bash和msysgit包中的相关工具都是纯Windows可执行文件 这就是为什么不能在Git bash中运行Cygwin工具,因为这些工具不完全是windows程序(它们需要Cygwin.dll,请参见下面的@fvu注释) 如果要将Git与Cygwin工具一起使用,必须为Cygwin安装Git包。您可能只需要将Cygwin bin目录添加到Git

我安装了GitBash,但是我无法访问我可以使用Cygwin访问的所有工具(vim、vimdiff)。可以在其中一个Git配置文件中设置吗?

Git bash和msysgit包中的相关工具都是纯Windows可执行文件

这就是为什么不能在Git bash中运行Cygwin工具,因为这些工具不完全是windows程序(它们需要
Cygwin.dll
,请参见下面的@fvu注释)


如果要将Git与Cygwin工具一起使用,必须为Cygwin安装Git包。

您可能只需要将Cygwin bin目录添加到Git bash中的$PATH变量中


尽管其他人似乎都认为自己知道,Git Bash实际上几乎是重新包装的Cygwin。也就是说:

如果将cygwin
bin
目录添加到git bash中的
$PATH
变量中,请确保使用git 2.27(2020年第2季度)

通过
run\u command()
API运行的实用程序在Cygwin上没有正确生成,因为它们的路径是带有反斜杠的完整路径

参见(2020年3月27日)作者。
(于2020年4月22日合并)

:在Cygwin上正确查找触发器路径 签字人:Andras Kucsma

在Cygwin上,类似POSIX的系统的代码路径采用::start_command()。调用
prepare\u cmd()
helper函数来决定是否需要在路径中查找命令。当且仅当路径中没有任何斜杠“/”时,才执行路径查找。如果此测试通过,我们将尝试在PATH的每个冒号分隔的组件后面追加字符串来运行该命令

Cygwin环境支持Windows和POSIX样式的路径,因此前向斜杠“/”和后向斜杠“\”都可以用作用户提供的任何外部程序的目录分隔符

在路径中错误搜索而不是按原样执行的路径字符串示例:

为了处理这些问题,在
prepare\u cmd()
中的
PATH
查找检测逻辑通过引入
has\u dir\u sep(
PATH)helper函数来抽象出真正的POSIX和Cygwin系统之间的差异,从而了解Cygwin的这一怪癖


Cygwin编译程序是Windows程序,但它们依赖于Cygwin dll提供的某些POSIX功能的仿真。更多信息。但这并没有改变你的结论。那么,为什么可以从cmd.exe(纯Windows可执行文件)运行Cygwin工具,而不是从Git bash运行Cygwin工具呢?那么,在我将
C:\cygwin64\bin
添加到
PATH
环境变量之后,为什么可以从Git bash运行Cygwin
rsync
?见下面基思·泰勒的答案。
"C:\Program Files\some-program.exe" - "a\b\c.exe"