我安装了Git-Bash,但是我无法访问Cygwin中的所有工具(如vim和vimdiff)。这可以在Git配置文件中设置吗?
Git bash和msysgit包中的相关工具都是纯Windows可执行文件。
这就是为什么你不能在Git bash中运行Cygwin工具,因为它们不是完全的Windows程序(它们需要cygwin.dll
,见下面@fvu的评论)。
如果你想使用Cygwin工具来操作Git,你需要安装Cygwin中的git软件包。
如果您在Git Bash中将Cygwin的bin
目录添加到$PATH
变量中,请确保使用Git 2.27(Q2 2020)。
通过run_command()
API运行的实用程序在Cygwin上无法正确启动,当它们的路径以反斜杠的完整路径给出时。
请参见提交05ac858(2020年3月27日),作者为Andras Kucsma(r0mai
)。
(由Junio C Hamano -- gitster
--于提交d01b722中合并,2020年4月22日)
run-command
:在Cygwin上正确触发PATH查找签名作者:Andras Kucsma
在Cygwin上,run-command.c
::start_command()采用了类POSIX系统的代码路径。调用prepare_cmd()
辅助函数来决定是否需要在PATH中查找命令。逻辑是只有当命令中没有任何斜杠'/'时才进行PATH查找。如果测试通过,我们将尝试通过在每个冒号分隔的PATH组件后附加字符串来运行命令。
Cygwin环境支持Windows和POSIX样式的路径,因此用户提供的任何外部程序都可以使用正斜杠'/'和反斜杠'\'作为目录分隔符。
以下是被错误地搜索PATH而不是按原样执行的路径字符串示例:
"C:\Program Files\some-program.exe" - "a\b\c.exe"
prepare_cmd()
中的 PATH
查找检测逻辑被教导了解这个 Cygwin 怪癖,通过引入 has_dir_sep(
path) 辅助函数来抽象出真正的 POSIX 和 Cygwin 系统之间的差异。
C:\cygwin64\bin
添加到PATH
环境变量后,可以从 Git Bash 运行 Cygwin 的rsync
?请参见 Keith Tyler 的下面的答案。 - Amedee Van Gasse