分支策略类似于 TFS 中签入策略的概念。启用签入策略后,用户在签入源代码管理时需要采取操作,例如,可能要求用户将工作项与变更集关联或添加签入注释。
同样,设置分支策略后,您不能直接将更改推送到分支。对分支的更改只能通过拉取请求进行。
Pull request是TFS中的一个功能名称,与git中的pull/push概念无关。
至于阻止用户合并/推送,这是另一个概念允许在TFS中。仅具有以下功能的用户贡献权限可以将新的提交推送到分支并锁定分支。如果你对此感兴趣,你可以看一下这里:设置分支权限-GIT https://www.visualstudio.com/en-us/docs/git/branch-permissions
Update
要将功能推送到我的主分支中,您可以使用 git 命令
git push origin branch1:branch2
更多详情请参考这个问题:将提交推送到另一个分支 https://stackoverflow.com/questions/13897717/push-commits-to-another-branch
因为我从来不希望有人将我的开发分支合并到主分支中。您可以设置您的开发分支的权限,只需拒绝其他人对开发分支的贡献权限。(注意:这也会不允许他们将推送提交到您的开发分支,TFS Git 中没有任何唯一合并相关的权限)
如果你想使用分支策略,你可以通过设置必须通过你的代码审查来阻止其他人合并你的开发分支。但是,您无法直接将功能推送到master branch
。详细原因请参考第二段Martin's answer.
另一种解决方法是暂时的锁定你的开发分支 https://www.visualstudio.com/en-us/docs/git/lock-branches这非常适合防止可能与重要合并冲突的新更改或将分支置于只读状态。