如何在Windows git钩子中使用cygwin路径?

时间:2014-09-15 02:51:50

标签: windows git cygwin

(A) 我的.git / hooks / pre-commit是

#!c:/cygwin/bin/bash.exe
#
/cygdrive/c/tmp/a.sh

当我运行' git commit'

时会显示错误
.git/hooks/pre-commit: line 8: /cygdrive/c/tmp/a.sh: No such file or directory

(B)如果.git / hooks / pre-commit

#!c:/cygwin/bin/bash.exe
#
c:/cygwin/bin/bash.exe /cygdrive/c/tmp/a.sh

错误变为

/usr/bin/bash: C:/Program Files (x86)/Git/cygdrive/c/tmp/a.sh: No such file or directory

(C)但在cmd中可以运行

c:\>c:\cygwin\bin\bash.exe /cygdrive/c/tmp/a.sh

问题是:有没有办法从Windows git hooks运行带有cygwin路径的脚本?


以下一些信息

  • git version 1.9.4.msysgit.0
  • 环境PATH = ...; C:\ Program Files(x86)\ Git \ cmd; C:\ cygwin \ bin

2 个答案:

答案 0 :(得分:1)

找到了一些东西。

(D)如果.git / hooks / pre-commit

,则确定
#!c:/cygwin/bin/bash.exe
#
/c/tmp/a.sh

(E)实际上,shebang不一定是cygwin的。

#!/bin/sh
#
/c/tmp/a.sh

答案 1 :(得分:0)

抱歉,(D)和(E)工作,因为他们使用mysisgit的路径(/ c /..)

但我想使用仅限cygwin的脚本(例如:ruby compass,lftp,它们是从cygwin安装的)。他们仍然会出错。

/c/cygwin/bin/compass: /usr/bin/ruby.exe: bad interpreter: No such file or directory 
mirror: Access failed: /c/Users/.../webroot: No such file or directory

所以原来的问题还没有回答。