现在想配置hooks,防止一些release分支合并到自己的feature分支,团队人多,需要做个防范,网上找了一些配置不好使。有没有大佬给个实例?想在本地配置一个hook
###本地 hooks
能力有限啊,公司用的 gitlab-ce 作为代码仓库,选择使用 git-flow 作为工作流,当时我用 php
在 gitlab-ce 的服务端加了钩子,主要是为了限制
- 非同源 feature 分支不允许合并,这是为了避免非同源 分支合并出现冲突,解决冲突选择错误导致后续提交的自动合并异常
- feature 合并 develop 时,必须使用 fast-forward 方式,确保 feature 合并前,至少本地已经解决了冲突并至少做了一些测试(这个是我们自定义的要求)
- 同一时间,只能有一个 release 和 hotfix 分支存在,且 release 和 hotfix 只接受来自于自身分支检出分支的合并,不允许非同源点的分支相互合并.
还有一些其它的细小的规范,不过后来由于 gitlab 升级了 api 版本,以及习惯养成之后,也就没有继续做强制限制了.
其实写起来还是比较艹蛋的,有些判断必须要做历史回溯,如果你们选择的合并方式是直接 merge,那么回溯会异常复杂.如果合并方式是 fast-forward,回溯还会简单一些.
我找找看还能不能找到之前写的脚本