在有人声称我没有足够搜索这个主题的答案之前,让我澄清一下:
我找到了很多解决这个问题的线索,但是;这些答案都不适合我。
我已经确保执行提交的用户具有适当的权限。
我确保钩子文件本身是可执行的,并且不以.sample
结尾我不是在一个裸仓库中工作,所以提交相关的钩子应该调用。
我尝试过使用Git Bash,Git Commit工具,甚至第三方GUI GitEye,都具有相同的结果。
提交时和预提交都失败,无论我是尝试从服务器上的repo以及本地计算机上的克隆调用它们。
如果我将它们作为bash / batch文件运行,那么钩子文件本身会成功执行并按预期工作。
其他钩子(如Update)工作正常,但没有从git commit调用的任何内容。
此时,我已经筋疲力尽了所有可能出现的问题。任何帮助都表示赞赏,但请仔细阅读我已经尝试过的内容,然后不小心指导我一个暗示上述事情之一的主题。我希望有一些模糊的解决方案,一些精通Git的用户可以向我解释。
答案 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脚本,因此您可以自定义它。