我的公司使用带有git的VSTS。当我在VSTS中的开发分支中完成拉取请求时,会自动检查删除功能分支的复选框,但除非我更改功能分支上的权限以允许管理员用户组我是重写和摧毁历史的成员(强制推动)。
每次完成拉取请求时都这样做很乏味,但我并不是想让这个管理员用户组的所有成员始终能够删除功能分支。似乎可能会有意外删除。当我正在完成已经过审核和批准的拉取请求时,我确实对删除开发分支感到非常自在。就权限而言,还有第三种选择吗?如果能够删除功能分支,您的公司如何设置策略?
恕我直言,我认为你应该把责任推给分支所有者/ PR创建者。您可能已经知道,您可以将某些人(读取:引导开发人员)设置为PR上的“必需”,甚至可以根据要更改的仓库中的目录或区域过滤这些自动添加人员(我们使用人员组)。
这将允许您和您的其他可信赖的开发人员审查所做的代码更改,并将阻止PR创建者在没有授权更改的权威人士的情况下将任何代码添加到您的develop
或master
分支中。 PR的实际完成实际上只是一个令牌动作。真正有用的信息是知道谁批准了请求。
授予分支机构和公关所有者对其功能分支和PR的责任将减轻您更改分支权限的问题,以便您(不是分支所有者)可以删除其他人员分支。它还可以缓解错误删除问题,因为所有者应该知道功能何时完成。
恕我直言,如果功能没有完成,完成,它不应该得到PR。
另请注意,删除AzDO中的源分支不会影响本地存储库,直到有人执行git remote prune origin
或者选择的IDE定期为它们执行此操作,因此如果错误地删除了功能分支,则应至少有一个它在开发工作站上的某处复制。我们不使用“定期修剪我的遥控器”选项,这也是部分原因。