防止分支在 PR 完成时被删除
Prevent branches from being deleted on PR completion
在 Azure Devops 中,我有一个带有开发分支的 git 存储库。我们从该分支创建多个功能分支,并通过拉取请求将代码合并到开发中。一旦我们完成拉取请求,功能分支就会被删除。
我想防止这种情况发生。我想保留这些功能分支。我该怎么做?
Prevent branches from being deleted on PR completion
事实上,取消选中选项合并后删除是最直接的解决方案。
但是,我们有时会在频繁的PR中忽略勾选这个选项。目前,这个选项对我们来说还不够。
要解决此问题,解决方法是为目标分支设置分支安全性(根据您的情况选择多个功能分支):
在 Azure Devops Branches
选项卡中 -> 单击 Feature
分支的 …
按钮 -> Branch security
-> 将 Force push (rewrite history, delete branches and tags)
更改为 Deny
对于用户和组 -> 保存更改。
那么,合并后删除选项将不可用:
注:
- PR完成后合并选项后删除源分支window默认不是checked/selected,而是根据上次的设置。比如你现在取消select这个选项,下次打开PR完成window时,合并后删除源分支选项就会被取消select。
- 就像大牛说的,retain feature branches不是一个正常的操作,我们不得不知道它可能带来的一些问题。比如,如果我们 select 合并类型是
squash commit
并且在第一次 PR 时保留特性分支,那么当我们第二次 PR 时就会发生冲突。因为我们保留了功能分支上的提交。
希望这对您有所帮助。
在 Azure Devops 中,我有一个带有开发分支的 git 存储库。我们从该分支创建多个功能分支,并通过拉取请求将代码合并到开发中。一旦我们完成拉取请求,功能分支就会被删除。
我想防止这种情况发生。我想保留这些功能分支。我该怎么做?
Prevent branches from being deleted on PR completion
事实上,取消选中选项合并后删除是最直接的解决方案。
但是,我们有时会在频繁的PR中忽略勾选这个选项。目前,这个选项对我们来说还不够。
要解决此问题,解决方法是为目标分支设置分支安全性(根据您的情况选择多个功能分支):
在 Azure Devops Branches
选项卡中 -> 单击 Feature
分支的 …
按钮 -> Branch security
-> 将 Force push (rewrite history, delete branches and tags)
更改为 Deny
对于用户和组 -> 保存更改。
那么,合并后删除选项将不可用:
注:
- PR完成后合并选项后删除源分支window默认不是checked/selected,而是根据上次的设置。比如你现在取消select这个选项,下次打开PR完成window时,合并后删除源分支选项就会被取消select。
- 就像大牛说的,retain feature branches不是一个正常的操作,我们不得不知道它可能带来的一些问题。比如,如果我们 select 合并类型是
squash commit
并且在第一次 PR 时保留特性分支,那么当我们第二次 PR 时就会发生冲突。因为我们保留了功能分支上的提交。
希望这对您有所帮助。