我最近在SO上发现,从叉子到主回购的机会正确的流量是这样的:
在fork上创建问题分支
创建拉动请求以将此分支合并到主上游
将更改从上游拉到fork master
将更改从fork master更改为远程fork master
一切正常,但我不确定当遇到合并冲突时该怎么办。
即,我为3个问题创建3个分支并完成它们。我将分支推送到远程fork repo,我准备创建PR。我为BranchA创建PR,但它说"它不能自动合并,因为我必须解决冲突"。
解析包括我首先将此分支合并到fork master,解决冲突,然后将合并的更改推送到上游主仓库。
Haven我刚刚违反了上面提到的4步规则?
有没有办法不在fork master上合并任何内容,而是解决分支内的冲突并通过PR将固定分支推送到上游?
答案 0 :(得分:0)
解析包括我首先将此分支合并到fork master,解决冲突,然后将合并的更改推送到上游主仓库。
否:您需要从上游获取,并在其上重新绑定您的PR分支,确保您的分支适用而不会发生冲突。这就是第3步看起来的样子(除非上游分支经常更改,在这种情况下,简单的合并就足够了而不是rebase)
然后你强行将你的分支推到你的叉子上。它将有资格合并到上游回购。
正如我在" Maintaining a branch that syncing with upstream"中描述的那样,您可以将本地分支从上游存储配置为自动pull --rebase
,然后推送到本地分支。
答案 1 :(得分:0)
我最近在SO上发现,从叉子到主回购的机会正确的流量是这样的:
没有"正确"用git流动。 Git与工作流程无关,并且没有规定的工单。你必须了解它的作用并使其适应你的需要。
你描述的4点对我来说似乎是完全错误的。
更详细的工作程序(分支是like so
):
branch
,将其拉入本地工作存储库branch
branch
master
拉到当地的master
(这是一个微不足道的快进,你从未接触过master
)master
本地合并到branch
(或者,如果您自己正在处理branch
,那么更好的是,做一个rebase)。这是解决手动冲突的地方。master
和branch
推送到分叉。branch
的PR,根据定义,现在它也是无冲突的(直到其他人再次修改master - master
)。