使用Git-hook阻止合并某些分支

时间:2019-01-21 08:03:47

标签: git git-branch git-merge git-rebase git-merge-conflict

在工作中,我们有一个GIT分支模型,其中我们产品的每个主要发行版都有一个单独的分支。

V2.0分支包含v1.0分支具有的所有提交以及在产品v2.0上完成的其他工作。 V3.0包含v1.0和v2.0中的所有提交,以及在v3.0等上完成的其他工作。

制作错误修正/功能时,需要从需要实现错误修正/功能的产品的正确版本中分支出来。一段时间后,您想根据分支的最新分支对功能分支进行重新设置。唯一的问题是:很容易犯错误并选择错误的版本分支(例如,v2.0而不是v1.0)。您也不会真正遇到任何冲突,因为所有较新版本的分支都包含来自较低版本分支的所有提交以及其他提交。

我正在研究一个GIT挂钩(预变基),它会警告用户他/她可能在错误的版本分支之上重新定基。

到目前为止,我想出的是比较本地要素分支和远程分支之间的标签。由于v1.0分支具有v1.0标签,而v2.0分支也具有v2.0标签。因此,如果用户希望将从v1.0分支出来的功能分支重新建立在v2.0的基础上,则标签会有区别。

但是,如果开发者从v3.0分支中分支出来,但是却试图将其分支重新建立在master分支之上,这将不起作用,因为在master分支上,v3.0没有其他标签分支不包含。

我能想到的下一个最佳解决方案是计算用户试图基于其进行远程部署的远程分支的提交数量。如果用户可能是从v1.0分支出来的,但又试图基于v2.0进行开发,则v2.0可能包含数百个开发人员功能分支中不存在的提交。

我想知道是否有人能提出更好的解决方案来防止将错误的版本分支改编/合并为功能分支?

编辑:我们目前无法安装任何服务器端Git钩子。我们现在将在开发人员之间共享git-hook。 (知道这不能保证100%不会发生错误的合并。)

0 个答案:

没有答案