我有一个感觉好像是很多人的共同问题的问题。但是,我无法找到我的问题的任何答案。Git的工作流程流 - 与分行的权限冲突的修补程序
我正在使用GIT中流动的工作流(未用git流)一到位桶库。但是,使用分支权限时,我目前遇到了一些工作流问题。我有以下分支命名约定:
master
develop
hotfix/...
release/...
feature/...
我已经配置我的写访问资源库,对分支机构master
和develop
,只有通过拉请求。对于所有其他分支机构提供完全许可,即任何人都可以向他们推送代码。
我的问题可以通过以下动作序列来解释。
- 一个释放做了一个前一阵子。它合并为
origin/master
和origin/develop
。 - 继续开发;
feature
通过拉取请求创建分支并将其合并到origin/develop
。 - 实时代码(
origin/master
)中确定了一个严重的错误。 - 一个
hotfix
分支,从master
创建,让我们称之为hotfix/some-hotfix
。 bug是固定的,并且
hotfix/some-hotfix
分支被推到存储库。我们现在也有一个远程分支origin/hotfix/some-hotfix
。在这个阶段,我们有:origin/develop
是origin/master
头由若干提交的(取决于开发进展如何)。origin/hotfix/some-hotfix
是主人的头(通过修正错误的承诺)。
pull请求被创建以合并成
origin/hotfix/some-hotfix
origin/master
。这将工作正常,因为origin/hotfix/some-hotfix
从origin/master
创建。
注:拉入请求并不一定解决,即origin/hotfix/some-hotfix
没有合并到origin/master
。
- 创建拉取请求以将
origin/hotfix/some-hotfix
合并为origin/develop
。这在很多情况下会导致冲突;已经对两个分支进行了改变。
我无法合并origin/develop
为origin/hotfix/some-hotfix
,因为这个部门是为了我合并为origin/master
。在完成最终拉取请求之前,任何推送到修补程序分支的更改都将在主服务器中结束。为开发所做的更改可能会破坏主人。
一种解决方案是,我可以非常小心,确保任何引入请求掌握开始处理引入请求开发之前完成。在我看来,这并不理想。这是冒险的(如果我忘记了)并且阻碍了进一步的开发(没有人可以开始在完成master之前完成hotfix的开发请求):
我觉得这会是一个常见问题流程。
Questsion
基于上述
- 难道我解释的方式是错误的混帐流工作流程?
- 你们是怎么做到的?
- 我该如何解决这个问题,或者完全避免它?
在此先感谢
后,您必须解决
develop
分支中的冲突好吧,如果我理解正确,我会将本地'hotfix/some-hotfix'推送到远程'origin/hotfix/some-hotfix' 。然后,我将创建一个合并远程分支“origin/hotfix/some-hotifx”到远程分支“origin/master”的pull请求,批准pull请求(合并它)。我从远程分支'origin/master'和'origin/develop'提取最新的更改。然后我可以将'master'合并到'develop'中。但是,我没有权限推动'develop'。我必须创建一个拉请求。但是,我怎么能从我的本地分支'develop'进入我的远程分支'origin/develop'? –有没有办法让我的本地分支'develop'进入我的远程分支'origin/develop'的请求? –
我不认为有一种方法可以使用相同的基本分支进行公关。你可以做的一件事是从'develop'创建一个分支,将'master'合并到该分支中,并使用这个新创建的分支将PR合并到'develop'中。合并该新创建的分支后进行拉动。 –