【问题标题】:Github Protected Branches with GitFlow使用 GitFlow 保护的 Github 分支
【发布时间】:2017-07-27 20:16:18
【问题描述】:

我有一个存储库,我的开发分支受到保护,我正在使用 GitFlow 分支模型。有两个分支; develop(包含当前正在开发的功能)和 master(最新部署的生产代码)。

我的开发分支阻止直接通过 GitHub 的受保护分支进行提交。当您使用 GitFlow 在本地完成修补程序时,它会自动将修补程序分支合并到本地主分支和开发分支中。但是,不允许直接在开发分支上推送更改,因为这是一个受保护的分支

你怎么能克服这个?每次创建修补程序时,我都必须:

  1. 手动关闭分支保护
  2. 推送开发分支
  3. 重新开启

这不是自动化的,因此不是真正可以接受的。

【问题讨论】:

  • 嗨!我的回答对你有帮助吗?或者您在此期间找到了解决方案?
  • 目前还没有解决办法。
  • 我的回答也没有帮助到你?
  • 不行,因为你必须关闭分支保护,它也不使用与 Gitflow 相同的分支结构。
  • 不,您不必将其关闭...但是可以。

标签: github git-flow


【解决方案1】:

您是 GitHub 项目的所有者,您的帐户是否设置了管理员角色(或者您可以授予对您帐户的管理员访问权限)?

在这种情况下,我建议您不要为管理员保护分支。这样,您可以保证其他人不会直接推动开发,但所有具有管理员访问权限的“知识开发人员”都可以。不过,他们应该知道自己在做什么。

您可以在https://github.com/${name}/${repo}/settings/branches/ 下编辑此行为。我的设置看起来像这样(最后一个复选框很重要):

注意:也许你也可以使用“限制谁可以推送到这个分支”选项。

【讨论】:

  • 在我看来这并不是一个真正的解决方案,因为人们保护他们的分支是有原因的。绕过它就是否定这些选择。
  • 我知道你的意思@Thermometer,我同意。如果您的分支受到团队中每个人的保护,您很可能不会使用 gitflow,而是使用另一种方式来审查和合并您的更改。但是,OP 似乎是 repo 的管理员,因为他可以手动更改限制。所以我假设他想为其他贡献者保护分支,但也想为自己使用 gitflow。在这种情况下,我的建议是(afaik)唯一的选择。
  • 是的,这是一个很好的解决方法。然而,我们也在寻找一种可以与这些 Github 分支限制和 git flow 命令行工具或概念一起使用的解决方案。
【解决方案2】:

在 GitHub 上启用“需要拉取请求”。

在本地主服务器中合并修补程序后,您可以从中创建一个修补程序分支,以在源中创建拉取请求。您的 master 会有所不同,但您可以重置并存储并拉入 origin/master。

git checkout -b hotfix
git push origin hotfix
# merge
git checkout master
git reset origin/master
git stash
git pull --rebase

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2022-10-06
    • 2020-04-23
    • 2021-10-05
    • 2018-10-20
    • 2023-02-09
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多