Git 挂钩简介

已完成

持续交付要求高度的自动化。 如果没有高质量代码库,则不能持续交付。 这也是 git 的优势所在。

允许自动执行代码库中的大多数检查。 在将代码提交到本地存储库之前,更不用说提交到远程存储库了。

Git 挂钩

Git 挂钩是一种允许在某些 Git 生命周期事件之前或之后运行代码的机制。

例如,某人可连接到 commit-msg 事件以验证 commit message 结构是否遵循建议的格式。

挂钩可以是任何可执行的代码,包括 shell、PowerShell、Python 或其他脚本。 或者可能是二进制可执行文件。 什么都可以!

唯一的条件是挂钩必须存储在存储库根路径中的 .git/hooks 文件夹中。 此外,必须将它们命名为与相关事件 (Git 2.x) 相匹配:

  • applypatch-msg
  • pre-applypatch
  • post-applypatch
  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • pre-rebase
  • post-checkout
  • post-merge
  • pre-receive
  • update
  • post-receive
  • post-update
  • pre-auto-gc
  • post-rewrite
  • pre-push

使用 Git 挂钩的实际用例

由于 Git 挂钩在调用它们的特定事件类型上执行脚本,你可以使用 Git 挂钩执行许多操作。

以下是一些可使用挂钩来强制执行策略,确保一致性和控制环境的示例:

  • 强制执行合并的前提条件
  • 验证 commit message 中的工作项 ID 关联
  • 预防你和你的团队提交错误的代码
  • 将通知发送到团队聊天室(Teams、Slack、HipChat 等)

在下一个单元中,你将了解如何实现 Git 挂钩。