提交相关的Git钩子没有调用

时间:2015-07-29 21:03:06

标签: git bash githooks

在有人声称我没有足够搜索这个主题的答案之前,让我澄清一下:

我找到了很多解决这个问题的线索,但是;这些答案都不适合我。

我已经确保执行提交的用户具有适当的权限。

我确保钩子文件本身是可执行的,并且不以.sample

结尾

我不是在一个裸仓库中工作,所以提交相关的钩子应该调用。

我尝试过使用Git Bash,Git Commit工具,甚至第三方GUI GitEye,都具有相同的结果。

提交时和预提交都失败,无论我是尝试从服务器上的repo以及本地计算机上的克隆调用它们。

如果我将它们作为bash / batch文件运行,那么钩子文件本身会成功执行并按预期工作。

其他钩子(如Update)工作正常,但没有从git commit调用的任何内容。

此时,我已经筋疲力尽了所有可能出现的问题。任何帮助都表示赞赏,但请仔细阅读我已经尝试过的内容,然后不小心指导我一个暗示上述事情之一的主题。我希望有一些模糊的解决方案,一些精通Git的用户可以向我解释。

1 个答案:

答案 0 :(得分:0)

它就像一个魅力。在你的git存储库中有一些钩子样本你可以像这样使用它们:

例如:

1)一个简单的钩子(pre commit),禁止提交并打印一条消息。

$ git init
$ cp ./.git/hooks/pre-commit.sample ./.git/hooks/pre-commit
$ cat ./.git/hooks/pre-commit

#!/bin/sh
cat <<\EOF
    This is pre-commit hook
EOF
    exit 1

$ touch README
$ git add README 
$ git commit
    This is pre-commit hook
$ git log
fatal: bad default revision 'HEAD'

2)一个简单的钩子(post commit),在提交后打印消息

$ rm -f ./.git/hooks/pre-commit
$ cat ./.git/hooks/post-commit 
#!/bin/sh
cat <<\EOF
    Good job!
EOF

$ git commit
    Good job!
[master (root-commit) b552b7f] README
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README

$ git log --oneline
b552b7f README

正如您所看到的,钩子只是一个bash脚本,因此您可以自定义它。