【问题标题】:Set the develop branch as the default for a pull request将开发分支设置为拉取请求的默认分支
【发布时间】:2020-09-30 15:17:40
【问题描述】:

我想让拉取请求默认从功能分支合并到开发中。

我提倡使用git flow,所以当一个功能提交pull request时,pull request需要合并到develop,而不是master。

一些经理评论说,作为人类,团队领导可能会忽略这一事实并错误地将拉取请求合并到主控中,从而导致稍后的发布出现问题。

我们希望降低合并地狱的风险,因此这将大大有助于实现这一目标。

编辑:我正在使用一个名为 hubflow(http://datasift.github.com/gitflow/) 的 gitflow 分支。默认情况下,当创建一个特性分支 git hf feature start [tik-123] 时,特性分支是根据规范创建的,但也会被推送到原点。我们想要这个进行合作。功能完成后,开发人员将转到 github 中的功能分支并发出拉取请求。然后,如果该功能计划在 sprint 中发布,则团队负责人将审查拉取请求并将该功能合并到 dev 中。

【问题讨论】:

  • 请显示您当前正在使用的命令。我真的不明白功能分支和拉动是如何结合在一起的。通常,功能分支位于开发人员存储库的本地。它可能已发布,但随后将发布到 origin/features/。我看不出 pull 会如何将它合并到 master 中。
  • @CharlesB 那颗宝石是事后的。我想确保我的开发人员在发出拉取请求时不必担心更改基础分支。

标签: git github git-flow pull-request hubflow


【解决方案1】:

或者将develop 设置为每个人在访问项目时看到的默认分支。缺点是任何克隆它的人都会默认获得一个不稳定的分支,但所有拉取请求也会默认转到开发分支。

【讨论】:

  • 我假设反对意见来自习惯于在公共回购中工作的人。我是一家有私人仓库的私人商店,所以我们默认从 dev 分支。我会尝试您的建议,如果可行,我会将其标记为答案。您是否知道如何更改头顶上的默认分支?
  • @ton.yeung 我想你已经明白了,但对于其他人来说,如果你在查看存储库时转到设置选项卡,你可以在显示的第一页上更改它。干杯。
  • develop设为默认的GitHub分支也容易出错,如果人们习惯于git clonecd进入新的克隆,然后git flow init并按回车键每个 git-flow 提示获取 git-flow 默认设置。但是,当签出的分支是 develop 时,git-flow 会建议将其作为“生产版本的分支名称”,这不是您想要的默认设置。
  • @das-g 正是我现在的情况,默认分支在开发中。我执行了“git flow init”并卡在屏幕上,询问我是否要将“开发”用于生产发布。我想解决方案是从'develop'创建一个'master'分支,然后执行'git flow init'并继续默认。
  • @RmK 如果 github 上的 repo master 分支,您可能希望从该远程分支创建本地主分支 (git checkout -b master origin/master) 在执行git flow init(交互式)或git flow init --defaults(非交互式)之前。
【解决方案2】:

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

然后在标记新版本之前将它们合并通常是好的,因此没有或只有很少的转移。我使用这个模式,通常stable 跟在master 后面,延迟很小,合并大多是快进的。

为了保持master 分支的可部署性,请在准备好功能分支时合并它们。但既然你有stable 分支,新功能不必经过很好的测试。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 那太糟糕了。这是他们的系统,所以我想他们可以按照自己的意愿工作。不过,随着 git flow 的流行,我认为他们会考虑支持它,即使他们不想自己使用它。
    • 同意。我希望他们能让用户拥有更多的“per-repo”配置和控制。但它仍然是一个很棒的免费服务,所以我不能抱怨太多;D
    • 对我们来说不是免费的,因为我们是一家商业商店
    • @xero,你的“master”分支不一定是 master。请参阅我的答案以了解如何执行此操作。我将 master 保存在我的存储库中以获取稳定的代码,并使用 develop 和功能分支来获取其他内容。 develop 通常也是我存储库中的默认分支
    • 这个问题有点老了,但答案可以使用更新:他们支持将另一个分支设为默认:help.github.com/articles/setting-the-default-branch
    【解决方案4】:

    在 github 中使用 gitflow 且默认分支设置为 develop 时,您将收到 master 已更改的通知,并要求您在发布后创建到 develop 的 Pull Request。我不确定如何解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 2011-11-19
      相关资源
      最近更新 更多