将develop分支设为拉取请求的默认分支

42

我希望默认情况下,将拉取请求从特性分支合并到develop。

我提倡使用git flow,因此当为一个特性提交拉取请求时,需要将拉取请求合并到develop,而不是master。

一些经理评论说,作为人类,团队领导可能会忽略这个事实,并错误地将拉取请求合并到master,从而在后续发布中引起问题。

我们希望减轻合并问题的风险,因此这将在实现这一目标方面有很大帮助。

编辑:我正在使用一个名为hubflow(http://datasift.github.com/gitflow/)的gitflow fork。默认情况下,创建特性分支 git hf feature start [tik-123] ,特性分支按规范创建并推送到origin,以便进行协作。完成特性后,开发人员将进入github中的特性分支并发出拉取请求。然后,团队领导将审核拉取请求,并将特性合并到dev中,如果特性计划在sprint中发布。


请展示您当前正在使用的命令。我真的不明白特性分支和拉取请求如何结合在一起。通常,特性分支是开发者存储库中的本地分支。它可能会被发布,但那样的话它会被发布到 origin/features/<yourfeature>。我不知道拉取请求如何将其合并到主分支。 - Daniel Hilgarth
1
@CharlesB 那个 gem 是事后使用的。我想确保我的开发人员在发出拉取请求时不必担心更改基础分支。 - ton.yeung
4个回答

38

或者可以将develop作为默认分支,这样每个人访问该项目时都会看到它。缺点是任何克隆它的人默认会得到一个不稳定的分支,但所有拉取请求也将默认发送到develop分支。


9
我猜测这个踩的人可能习惯于在公共代码库上工作。我所在的是私有机构,使用私有代码库,因此我们通常默认从dev分支创建分支。我会尝试你的建议,如果有效,我将把它标记为答案。你知道如何立即更改默认分支吗? - ton.yeung
@ton.yeung 我猜你已经解决了,但是对于其他人来说,如果您在查看存储库时转到设置选项卡,您可以在显示的第一页上更改它。干杯。 - Ian Stapleton Cordasco
2
如果将develop设置为默认的GitHub分支,也可能会出现错误,因为人们习惯于使用git clone,然后进入新克隆的目录,接着运行git flow init并在每个git-flow提示处按回车键以获取git-flow的默认设置。但是,当检出的分支是develop时,git-flow会建议将其作为“生产发布的分支名称”,这不是您希望进行默认设置的内容。 - das-g
@das-g 现在我也遇到了与默认分支开发相同的情况。我执行了 'git flow init' 命令,但卡在了询问是否要将“develop”用于生产发布的屏幕上。我想解决方案是从“develop”创建一个“master”分支,然后执行 'git flow init' 并继续作为默认设置。 - RmK
1
如果 Github 上的仓库有一个 master 分支,你可能需要在执行 git flow init(交互式)或 git flow init --defaults(非交互式)之前从该远程分支创建本地 master 分支(git checkout -b master origin/master)。 - das-g
@das-g 不是的。Github上的仓库只有一个分支,即develop - RmK

11

不要使用 masterdevelop 分支,而是使用 stablemaster

然后,在标记新版本之前,通常最好将它们合并,这样就没有或只有很少的分歧。我使用这个模式,通常 stable 紧随 master 之后稍微延迟一下合并,而合并操作通常是快进的。

为了保持 master 分支可部署性,当功能分支准备就绪时,请将其合并。但由于你有了 stable 分支,新功能不必经过充分测试。


5

Github有他们自己建议的工作流程,称为github flow,按照惯例,所有拉取请求默认为master,但现在您可以将其编辑为任何分支。


3
那很糟糕。这是他们的系统,所以我想他们可以按照自己的方式工作。不过考虑到git flow现在非常流行,我觉得即使他们不想使用它,也应该考虑支持它。 - ton.yeung
同意。我希望他们能够允许用户拥有更多的“每个仓库”的配置和控制。但它仍然是一个非常棒的免费服务,所以我不能抱怨太多;D - xero
对于我们这样的商业店铺来说,它并不真正免费。 - ton.yeung
@xero,你的“master”分支不一定非得叫做master。请看我的回答,了解如何使用其他名称。我在我的代码库中保留master分支以供稳定代码使用,并使用develop和特性分支来处理其他内容。develop通常也是我的代码库上的默认分支。 - Ian Stapleton Cordasco
这个问题有点老了,但是答案需要更新:他们支持将另一个分支设置为默认分支:https://help.github.com/articles/setting-the-default-branch/ - Emmel

1
使用github中的gitflow,如果默认分支设置为develop,在发布后你会收到一个通知,提示master已经有变更,需要创建一个Pull Request到develop。我不确定如何解决这个问题。

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