从分支推送时合适的合并冲突方法?

时间:2016-09-15 11:22:00

标签: git github pull-request merge-conflict-resolution

我最近在SO上发现,从叉子到主回购的机会正确的流量是这样的:

  1. 在fork上创建问题分支

  2. 创建拉动请求以将此分支合并到主上游

  3. 将更改从上游拉到fork master

  4. 将更改从fork master更改为远程fork master

  5. 一切正常,但我不确定当遇到合并冲突时该怎么办。

    即,我为3个问题创建3个分支并完成它们。我将分支推送到远程fork repo,我准备创建PR。我为BranchA创建PR,但它说"它不能自动合并,因为我必须解决冲突"。

    解析包括我首先将此分支合并到fork master,解决冲突,然后将合并的更改推送到上游主仓库。

    Haven我刚刚违反了上面提到的4步规则?

    有没有办法不在fork master上合并任何内容,而是解决分支内的冲突并通过PR将固定分支推送到上游?

2 个答案:

答案 0 :(得分:0)

  

解析包括我首先将此分支合并到fork master,解决冲突,然后将合并的更改推送到上游主仓库。

否:您需要从上游获取,并在其上重新绑定您的PR分支,确保您的分支适用而不会发生冲突。这就是第3步看起来的样子(除非上游分支经常更改,在这种情况下,简单的合并就足够了而不是rebase)

然后你强行将你的分支推到你的叉子上。它将有资格合并到上游回购。

正如我在" Maintaining a branch that syncing with upstream"中描述的那样,您可以将本地分支从上游存储配置为自动pull --rebase,然后推送到本地分支。

答案 1 :(得分:0)

  

我最近在SO上发现,从叉子到主回购的机会正确的流量是这样的:

没有"正确"用git流动。 Git与工作流程无关,并且没有规定的工单。你必须了解它的作用并使其适应你的需要。

你描述的4点对我来说似乎是完全错误的。

更详细的工作程序(分支是like so):

  • 在fork存储库上创建branch,将其拉入本地工作存储库
  • branch
  • 上本地工作
  • branch
  • 上做一些提交
  • 将主人 - master拉到当地的master(这是一个微不足道的快进,你从未接触过master
  • master本地合并到branch(或者,如果您自己正在处理branch,那么更好的是,做一个rebase)。这是解决手动冲突的地方。
  • 将您的新masterbranch推送到分叉。
  • 从fork-repos到master-repos创建branch的PR,根据定义,现在它也是无冲突的(直到其他人再次修改master - master)。