Git 是否有针对全功能跨平台shebang线的黑客攻击?

Git 是否有针对全功能跨平台shebang线的黑客攻击?,git,scripting,shebang,githooks,Git,Scripting,Shebang,Githooks,问题:显然,.git/hooks目录中的脚本取决于与以下文件之一匹配的文件名: post-commit pre-commit pre-rebase 等等 不需要“文件扩展名”的概念,因为“shebang行”指示文件应该如何运行,只要它是可执行的并且在Linux机器上运行 问题是当您有一些脚本要在Windows设备上运行时 问题:有没有一种方法可以在Windows机器上执行可以理解的钩子脚本?我认为Windows没有执行无扩展名文件的概念。解决方法是1)在bash下使用Cygwin git,整个

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

post-commit
pre-commit
pre-rebase
等等

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

问题是当您有一些脚本要在Windows设备上运行时


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

我认为Windows没有执行无扩展名文件的概念。解决方法是1)在bash下使用Cygwin git,整个shebang业务都在这里工作;或2)在Windows git版本中进行黑客攻击,实际解析shebang行本身并加载相应的解释器。对于后者,我可以看到各种各样的哲学上的反对意见,所以我想这不会发生……

我实际上同意了选项3):


创建一个Windows“包装器”脚本,该脚本调用git并调用我想要运行的任何关联挂钩。缺点是我必须将包装程序配置为git能够自动完成的功能,只要我能够使用标准的钩子文件。

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