Git预提交挂钩不在Windows上运行

我刚刚开始研究Git钩子,但似乎无法让它们运行。

我build立了一个本地仓库,所以现在在我的项目文件夹里有一个'.git'目录。 我在名为'pre-commit.cmd'的C:/path/to/my/project/.git/hooks目录中添加了一个'.cmd'文件。 这里是这个文件的内容:

echo "HOOK RUNNING" echo. 2>C:/path/to/my/project/.git/hooks/EmptyFile.txt 

这应该回显文字“HOOK RUNNING”,并在该目录中创build一个空的文本文件。 但是,如果通过我的IDE(NetBeans)提交更改或使用Git Bash提交,它们都不会运行我的预提交挂钩,因为没有创build文件。

我的理解是,所有你需要做的,以获得一个钩子运行是添加一个可执行文件的钩子(正如我所做的)的名称。 难道我做错了什么?

注意:这是在Windows 7电脑上。

如何命名你的钩pre-commit (没有任何扩展名)?

编辑:并在第一行添加#!/bin/sh#!/bin/bash (在评论中建议)

您可能没有权限运行pre-commit文件

在你的终端中运行:

 chmod +x .git/hooks/pre-commit 

感谢@vaughan提供的想法