Git Bash与cygwin合作

时间:2013-07-01 21:14:27

标签: git cygwin

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

3 个答案:

答案 0 :(得分:3)

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

这就是为什么你不能将Cygwin工具运行到Git bash中,因为这些不是完全是windows程序(它们需要cygwin.dll,请参阅下面的@fvu评论)。

如果你想使用Git和Cygwin工具,你必须为Cygwin安装git包。

答案 1 :(得分:2)

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

尽管其他人似乎都认为他们知道,Git Bash实际上是重新包装的Cygwin。 Viz:https://github.com/msysgit/msys/tree/master/winsup/cygwin

答案 2 :(得分:0)

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

在Cygwin上正确生成通过run_command() API运行的实用程序时,它们的路径是带有反斜杠的完整路径。

请参见commit 05ac858Andras Kucsma (r0mai)(2020年3月27日)。
(由Junio C Hamano -- gitster --commit d01b722中合并,2020年4月22日)

run-command:在Cygwin上正确触发PATH查找

签名人:Andras Kucsma

在Cygwin上,类似POSIX的系统的代码路径位于run-command.c :: start_command()中。调用prepare_cmd()帮助函数来确定是否需要在PATH中查找命令。当且仅当其中没有任何斜杠“ /”时,才进行PATH查找。如果此测试通过,我们最终会尝试通过在PATH的每个冒号分隔部分之后附加字符串来运行命令。

Cygwin环境同时支持Windows和POSIX样式路径,因此正斜杠'/'和反斜杠'\'都可以用作用户提供的任何外部程序的目录分隔符。

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

"C:\Program Files\some-program.exe" - "a\b\c.exe"

为处理这些问题,通过引入PATH path)辅助函数来抽象出真正的POSIX之间的区别,从而prepare_cmd()中的has_dir_sep(查找检测逻辑被告知有关此Cygwin怪癖的信息和Cygwin系统。