【问题标题】:how to use use-git hooks?如何使用 use-git 钩子?
【发布时间】:2014-05-19 19:19:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: git github hook issue-tracking


    【解决方案1】:

    git hook 只是一个 shell 脚本,在对 repo 执行操作时运行。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-08
      • 2023-04-08
      • 2018-06-16
      • 2020-03-09
      • 2017-01-12
      • 2014-06-27
      • 2012-06-03
      • 1970-01-01
      • 2019-12-26
      相关资源
      最近更新 更多