3

问题:显然 .git/hooks 目录中的脚本取决于与以下之一匹配的文件名:

post-commit
pre-commit
pre-rebase

ETC ...

不需要“文件扩展名”的概念,因为“shebang 行”指示文件应该如何运行,只要它是可执行的并且在您的 Linux 机器上运行。

问题是当您有一些想要在 Windows 机器上运行的脚本时。

问题:有没有办法在Windows机器上执行可以理解的钩子脚本?

4

3 回答 3

3

我知道我在这方面落后了,但我有一个解决方案给你。如果您使用的是 python,请将“.py”添加到 PATHEXT 环境变量(控制面板、系统、高级、环境变量)。对于您的特定脚本语言也是如此。然后将这些钩子命名为 post-commit.py、pre-commit.py 等。当程序要求 Windows 执行某个目录中的“post-commit”文件时,Windows 会依次查找 PATHEXT,直到找到匹配的文件“post-commit.extension”,然后它将执行。我很久以前在 Windows 上使用 svn hooks 做到了这一点。

于 2010-08-03T21:52:20.233 回答
1

我认为 Windows 没有执行无扩展名文件的概念。解决方法是 1)在 bash 下使用 Cygwin git,整个 shebang 业务都在其中工作,或者 2)Windows git 版本中的一个 hack,它实际上解析 shebang 行本身并加载适当的解释器。我可以看到对后者的各种哲学反对意见,所以我猜这不会发生......

于 2010-02-19T20:23:08.523 回答
0

我实际上选择了选项3):

创建一个调用 git调用我想要运行的任何关联挂钩的 Windows“包装器”脚本。缺点是我必须配置包装程序来执行 git 会自动执行的操作,前提是我只能使用标准挂钩文件。

于 2010-02-19T20:53:28.467 回答