我很难理解分支政策,我正在阅读以下文章https://www.visualstudio.com/en-us/docs/git/branch-policies。
pull
而不是。{
push
过程似乎有点晚了我希望能够将features
推送到master branch
,但我不希望有人将develop branch
合并到master branch
你能做那样的事。
答案 0 :(得分:2)
策略是针对" pull requests"设置的,这是TFS / VSTS中的一项功能 - 类似于GitHub - 您可以在其中创建合并分支"的请求。这与git pull
和git push
命令/工作流无关。
当你需要拉取某个分支的请求时,这不再允许用户直接git push
到该分支,而是要求他们推送到新的分支并创建一个"拉取请求"合并两个分支。然后,策略允许您设置所需审阅者等要求(这将允许您拒绝合并到主分支中)。
答案 1 :(得分:2)
分支策略类似于TFS中的签入策略的概念。启用签入策略后,用户需要在签入源代码控制时执行操作,例如,可能要求用户将工作项与更改集关联或添加签入注释。
以同样的方式,在设置分支策略后,您无法直接将更改推送到分支。 只能通过提取请求对分支进行更改。
Pull请求是TFS中的一个功能名称,它与git中的pull / push概念没什么关系。
对于阻止用户进行合并/推送,它是TFS中的另一个概念权限。只有具有 Contribute 权限的用户才能将新提交推送到分支并锁定分支。如果您对此感兴趣,可以在此处查看:Set branch permissions-GIT
要将功能推送到我的主分支,您可以使用git命令
git push origin branch1:branch2
更多详情请参阅此问题:Push commits to another branch
因为我不希望有人将我的开发分支合并到主分支中。您可以设置开发分支的权限,只是拒绝开发分支上的其他Contribute权限。(注意:这也将禁止他们对您的开发分支的推送提交,TFS Git中没有任何合并相关的权限)
如果要使用分支策略,可以通过设置必须通过代码审查来阻止其他人合并您的开发分支。但是,您无法直接将功能推送到master branch
。详细原因仅参考 Martin 答案中的第二段。
另一种解决方法是临时locking your develop branch,它可以防止可能与重要合并冲突的新更改或将分支置于只读状态。