| 常见钩子 | pre-receive(整体校验)、update(逐引用)、post-receive(通知/部署) |
|---|---|
| 特点 | 客户端不可跳过;出错会拒绝整次推送 |
| 托管平台 | GitLab 服务端钩子由管理员配置;GitHub 侧以 CI 与分支保护实现同等约束 |
pre-receive 示意(校验提交信息)
pre-receive 示意(校验提交信息)
#!/bin/sh
while read old new ref; do
git log --format='%s' $old..$new | grep -qE '^(feat|fix|docs|chore)(\(.+\))?!?: ' || exit 1
done服务端强策略要给出清晰报错信息,否则贡献者只看到「推送被拒」而无从下手。