git - 如何使用 use-git Hook ?

标签 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 的优秀教程...有帮助吗?

另外:我有什么方法可以让 git hooks 在 Windows 的 github 上执行吗?

最佳答案

git hook 只是一个 shell 脚本,在存储库上执行操作时运行。

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

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

github 是一个互联网站点,它不是“在 Windows 上”。 git hooks 在与其关联的存储库上执行,并且可以在 Windows、Mac 和 Linux 环境中工作。它们是 Windows 中的 bash 脚本,将在与 Windows Git 一起打包的 MingW Bash shell 中执行。

所以在.git文件中会有一个名为hooks的文件夹。其中会有示例 Hook 。重命名 .sample 中的一个文件(在提交后的情况下,没有示例文件,因此您只需创建一个 post-commit hooks 目录中的文件)。在文本编辑器中对其进行编辑,然后添加 shell 命令以执行从命令行执行的操作。 Shell 脚本是一个深入的话题,有很多文献。

关于git - 如何使用 use-git Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745564/

相关文章:

git - 通过 SSL 使用我自己的 GIT 服务器设置 TeamCity

azure - 为每个 GitHub 拉取请求部署一个测试 Web 应用程序

从 master 分支分离的 Git 标签

wordpress - $query->set orderby 类型未按预期工作

c++ - 哪种方式返回HHOOK消息给系统更好?

python - 在 Airflow 上存储登录凭据的最佳方式是什么?

git - git如何维护已删除分支的提交?

来自 Visual Studio 的 git clone(使用 Git 源代码管理提供程序)

windows - 如何通过 R "shell"命令在 Windows 上设置 PATH

git - 多次提交后创建 git 分支