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 挂钩。