TFS-Git分支政策

时间:2017-05-18 05:40:47

标签: git tfs

我很难理解分支政策,我正在阅读以下文章https://www.visualstudio.com/en-us/docs/git/branch-policies

  1. 也许我读错了,但为什么政策会设置在pull而不是。{ push过程似乎有点晚了
  2. 为什么你不能阻止用户合并/推送让一个分支到另一个分支?
  3. 我希望能够将features推送到master branch,但我不希望有人将develop branch合并到master branch

    你能做那样的事。

2 个答案:

答案 0 :(得分:2)

策略是针对" pull requests"设置的,这是TFS / VSTS中的一项功能 - 类似于GitHub - 您可以在其中创建合并分支"的请求。这与git pullgit 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,它可以防止可能与重要合并冲突的新更改或将分支置于只读状态。