Bitbucket Server拉取请求

5
这是我的情况,希望有人可以澄清我的思路:
1. 我有一个私人的Bitbucket服务器 2. 我有一个只有读取权限的用户 3. 他创建了一个新的本地分支,完成工作后准备发起pull request 4. 错误:Bitbucket创建pull request需要在同一代码库上有两个分支,但“dev”无法推送他的分支,因为他只有读取权限而没有写入权限
我的问题是,如何使用Bitbucket创建pull request来: A. 将这个本地分支发送给我的团队进行审核 B. 我想让这个“dev”只能读取,不能写入?

Bitbucket的pull requests 应该适用于forks。你在哪里看到这个错误消息?你是如何触发它的? - Chris
我错了吗?“dev”不应该克隆repo,提交并请求拉取请求吗?他的工作不能公开。 - heyblackduck
我不确定你在问什么,罗伯特。你的开发人员创建了一个分支还是一个分支来工作? - Chris
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - heyblackduck
1
@Chris,我相信你在使用fork的正确轨道上。因此,工作流程应该是这样的:1. Fork 2. 提交更改 3. 请求在你的分支和主分支之间进行pull request。尽管现在我在想,我们的开发人员将会有多容易将我们的新提交rebase到我们的主分支,因为他已经fork了。 - heyblackduck
1个回答

7

解决方案1 处理分支权限

建议您先在Bitbucket服务器上创建分支,并赋予写入权限(通常使用Jira完成此操作,因此您可以为分支分配任务ID)。

要处理分支和权限,请查看此指南。您可以定义一个模式,并关联相应的权限,以便某些分支自动采用这些属性。

然后用户将执行以下操作:

$ git fetch origin
$ git checkout feature/taskID-whatever

在开发完成后,他将能够推送分支并执行拉取请求以进行开发。
$ git push origin feature/taskID-whatever

开发者必须只读取代码,但分支不用。

方法2:使用分叉(fork)

在您正在遵循的同一个教程中,您将找到如何进行分叉的方法。这样,您的开发人员将在自己的Bitbucket存储库中拥有一个克隆副本。


这个方法可以实现,但我想要它作为一个克隆完成。我正在使用这篇文章https://www.atlassian.com/git/tutorials/making-a-pull-request/,它指出如果他推送分支,这个拉取请求应该是可行的。我只是不想让开发人员通过授予写入权限来触碰这个“稳定代码仓库”。 - heyblackduck
我认为你无法从JIRA中创建Bitbucket的分支写入权限。如果可以,请提供说明或链接。 - Chris
3
您可以预先设置分支权限。https://confluence.atlassian.com/bitbucketserver/using-branch-permissions-776639807.html 当然,另一种解决方案是派生,但对于团队的开发人员来说,我不喜欢这种解决方案。 - Jav_Rock
@Jav_Rock,我可能表达不清楚。我知道Bitbucket支持分支权限。我问的是这里加粗的部分:“我建议您首先在Bitbucket服务器上创建分支,并具有写入权限(通常使用Jira完成此操作,因此您可以将任务ID分配给分支)。”您是否建议通过在JIRA中执行某些任务,在Bitbucket中创建具有特定权限的分支? - Chris
3
是的。如果你为分支权限定义了一个模式,那么无论是从Jira还是Bitbucket创建符合该模式的任何分支,都会具有相应的权限。请注意,不要改变原意,尽可能使翻译通俗易懂。 - Jav_Rock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接