我需要这样做: 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吗?
答案 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脚本是一个涉及大量文献的深层主题。