【问题标题】:Github pre-commit enforce commit message to contains a specific messageGithub pre-commit 强制提交消息以包含特定消息
【发布时间】:2021-12-17 18:28:11
【问题描述】:

我希望这个问题不会听起来很傻,但我真的很好奇又很困惑。

我一直在阅读不同的文档并观看不同的视频,但没有一个足够令人满意。

我有不同的 GitHub 存储库与 Azure Boards 链接。 Azure board GitHub 集成,如果提交消息通过以下方式完成,允许我查看 azure board 上特定任务的提交:

commit-message AB#ticket-id

这非常完美,工作正常,但我一直在研究 GitHub 预提交以强制 commit-message 包含 AB#ticket-id,如果没有,则阻止提交。

我正在寻找的最终结果如下。

如果我提交此initial commit 并尝试推送,我想得到一个错误或阻止我的东西。

但是如果我提交这个 Initial Commit AB#0001 以便能够将该提交推送到 repo。

我正在寻找的只是寻找容器AB#int的提交

我希望我清楚地解释了我的观点,如果您需要更多信息,请告诉我。

非常感谢您抽出宝贵的时间以及您可以提供的任何帮助/解释

【问题讨论】:

  • 我相信你正在寻找commit-msg git hook
  • @AnthonySottile 非常感谢您的回复。我正在看你的一些视频,看看我是否能找到解决我的困境的答案。我会按照您的建议尝试commit-msg,看看我能弄清楚什么。非常感谢您的回复

标签: github pre-commit-hook pre-commit


【解决方案1】:

如果您愿意,可以在本地系统上使用 commit-msg 挂钩来为您执行此 linting。但是,这些钩子可以通过--no-verify 绕过而不会留下任何痕迹,因此如果您正在与多人一起处理一个项目,您需要做一些不同的事情。此外,这种钩子对于使用 squash 或 fixup 提交的人来说可能非常烦人,因此您希望将其设为可选。

如果您想实现有效的控制,the Git FAQ is clear:您需要使用pre-receive 挂钩或 CI 检查。如果您使用的是 github.com,则不允许使用 pre-receive 挂钩,因此您需要在 CI 中实施此检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多