在任何人声称我在这个话题上搜索的答案还不够多之前,让我澄清一下:
我发现很多关于这个问题的帖子都已经解决了,但是这些答案对我来说都不起作用。
我已经确保执行提交的用户具有适当的权限。
我已经确保钩子文件本身是可执行的,并且不会以.sample结尾
我不是在纯repo中工作,所以应该调用与提交相关的钩子。
我尝试过使用Git Bash、Git提交工具,甚至是第三方图形用户界面GitEye进行提交,结果都是一样的。
无论我尝试从服务器上的存储库还是从本地计算机上的克隆调用它们,后提交和预提交都会失败。
如果我将钩子文件作为bash/批处理文件运行,那么钩子文件本身就可以成功地执行并正常工作。
其他钩子可以正常工作,但没有从git commit调用的钩子。
在这一点上,我已经用尽了我能想到的所有可能的问题。任何帮助都是非常感谢的,但请阅读我已经尝试过的内容,然后再不小心地将我引导到一个建议上述事情的帖子。我希望有一些晦涩难懂的修复方法,一些精通Git的用户可以向我解释。
发布于 2015-07-30 05:26:25
它就像一种护身符。在你的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脚本,因此您可以对其进行自定义。
https://stackoverflow.com/questions/31711072
复制相似问题