如何使用use-git hooks?

时间:2014-05-19 19:19:47

标签: git github hook issue-tracking

我需要这样做: Git commit hook - How to use the commit-msg hook to check for string in message?

但我需要检查提交消息是否有问题编号。我的目标是只允许与我的github项目中的问题相关的提交。

如何测试commit-msg文件是否正常工作?它在我的计算机上的.git文件夹中,但我无法将其推送到存储库,我不知道如何测试它是否正常工作。关于git hooks的网上没有很棒的教程......有什么帮助吗?

另外:我有办法在github for windows上执行git hooks吗?

1 个答案:

答案 0 :(得分:0)

git hook只是一个在脚本上执行操作时运行的shell脚本。

如果shell脚本返回0,则没有错误,如果返回另一个数字,则遇到错误。如果挂钩是pre-挂钩,则返回错误将阻止操作发生。发布事件后发生,如果失败,事件仍然发生。因此,如果您需要使用提交消息执行操作,则可以阻止推送,但不能提交。此外,如果您发现错误并希望对其进行修补,则会强制您在提交之前创建问题。

困难的部分是弄清楚如何检查提交消息中是否有未解决的问题编号。你必须刮掉github的网站或通过api获取问题。这可以在shell脚本中完成,但是你可能最好还是编写一个小程序。

github是一个互联网站点,它不是“在Windows上”。 git hooks在与它们相关联的repo上执行,它们可以在Windows,Mac和Linux环境中运行。它们是Windows中的bash脚本,将在与Windows Git打包在一起的MingW Bash shell中执行。

因此在.git文件中会有一个名为hooks的文件夹。在那将有样品钩。重命名其中一个文件取消.sample(在提交后的情况下,没有示例文件,因此您只需在hooks目录中创建一个post-commit文件)。在文本编辑器中编辑它,并添加shell命令以执行从命令行执行的操作。 Shell脚本是一个涉及大量文献的深层主题。