Git flow 工作流程 - 修补程序与分支权限冲突

标签 git branching-and-merging pull-request git-flow

我有一个问题,我觉得这对很多人来说都是一个普遍的问题。但是,我无法找到我的问题的任何答案。

我有一个使用 git flow 工作流程(不使用 git-flow)的 bitbucket 存储库。但是,我目前在使用分支权限时遇到了一些工作流程问题。我有以下分支命名约定:

  • 大师
  • 开发
  • 修补程序/...
  • 发布/...
  • 功能/...

我已经在分支 masterdevelop 上为我的存储库配置了写入权限,仅通过 pull 请求。对于所有其他分支,给予完全许可,即任何人都可以向它们推送代码。

我遇到的问题可以通过以下一系列操作来解释。

  1. 不久前发布了一个版本。它被 merge 到 origin/masterorigin/develop
  2. 开发仍在继续; feature 分支通过 pull requests 创建并 merge 到 origin/develop
  3. 在实时代码 (origin/master) 中发现了一个严重错误。
  4. hotfix 分支是从 master 创建的,我们称它为 hotfix/some-hotfix
  5. 错误已修复,hotfix/some-hotfix 分支已推送到存储库。我们现在还有一个远程分支 origin/hotfix/some-hotfix。在这个阶段我们有:

    • origin/developorigin/master 的负责人,通过多次提交(取决于开发进度)。
    • origin/hotfix/some-hotfix 是 master 的负责人(通过提交修复错误)。
  6. 创建 pull 请求以将 origin/hotfix/some-hotfix merge 到 origin/master 中。这会很好地工作,因为 origin/hotfix/some-hotfix 是从 origin/master 创建的。

注意: pull 请求不一定已解决,即 origin/hotfix/some-hotfix 未 merge 到 origin/master 中。

  1. 创建 pull 请求以将 origin/hotfix/some-hotfix merge 到 origin/develop 中。在许多情况下,这会导致冲突;对两个分支都进行了更改。

我无法将 origin/develop merge 到 origin/hotfix/some-hotfix 中,因为这个分支是要我 merge 到 origin/master。推送到 hotfix 分支的任何更改,在最终 pull request 到 master 之前,也将在 master 中结束。对 develop 所做的更改可能会破坏 master。

一个解决方案是,我可以非常小心并确保在开始处理要开发的 pull 请求之前完成任何对 master 的 pull 请求。在我看来,这并不理想。这既有风险(如果我忘记了怎么办)又会阻碍进一步的开发(在 master 完成之前,没有人可以开始通过 hotfix 的 pull request 进行开发):

我觉得这是这个工作流程的一个常见问题。

问题

基于以上

  1. 我是否以错误的方式解释了 git flow 工作流程?
  2. 你们是怎么做到的?
  3. 我怎样才能解决这个问题,或者完全避免它?

提前致谢

最佳答案

不,您没有以错误的方式解释工作流程。

我认为我们可以将这个 hotfix/some-hotfix 分支 merge 到 master 中。之后,我们可以将 master 分支 merge 到 origin/develop 中,将 master 分支的最新代码获取到其中,或者我们可以 rebase origin/developmaster 的分支。我觉得 merge 比较好。 merge/ rebase master

后,您必须解决 develop 分支中的冲突

关于Git flow 工作流程 - 修补程序与分支权限冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653188/

相关文章:

git - 在 Git 日志中只显示一个分支的历史

Git 分支模型策略

git - 如何在 TFS 中查询 git pull 请求

github PR 显示所有过去的提交

git - 运行 "git checkout origin/main"后意外从本地文件夹中删除文件

php - 通过 HTTPS 使用具有私有(private) GitHub 存储库的 Composer

git - 如何解决所有有利于刚刚 pop 的存储的 merge 冲突?

java - netbeans 中的 Git - 解决冲突

使用分支的 SVN 策略,并将更改从主干合并到分支

git - 如何列出所有更改文件数的 pull 请求