2017-03-05 43 views
2

我正在使用功能分支,一旦我的请求被接受,它最终会合并到origin/develop我运行'git pull'但仍不能自动合并?

前推我的分支与起源,我跑:

$ git pull origin develop

推着我的变化origin/<feature-branch>后,Github上说,它“不能自动合并”,而这个分支是“3犯提前,落后发展“12。

我做错了什么,以及如何在推进我的更改之前确保我的本地分支与origin/develop保持同步,以便进行快进合并?

工作流

1)$ git clone <origin-url>

2)$ git checkout <feature-branch>

3)进行更改代码,阶段和提交它们

4)$ git checkout develop

5)$ git pull origin develop

6)$ git checkout <feature-branch>

6)$ git push origin <feature-branch>

+0

我无法弄清楚这里发生了什么。你用什么实际的命令将你的更改推送到'origin/'?为什么Git会告诉你该分支与_develop_有多少分歧?它不应该是功能分支的报告。你能编辑你的问题,并列出你到达现在的位置的确切步骤吗? –

+0

由于缺乏清晰的道歉信息 - 我添加了我的工作流程。 – Callum

+0

我实际上并没有看到生成'Can not automatically merge'消息的步骤,AFAIK –

回答

1

这意味着,您的拉请求不能被合并到上游,而不必解决合并冲突上游所有者(S)。

这里的解决方案是让您从上游执行提取操作,然后解析来自上游的合并冲突。此时,如果理论上解决来自上游的冲突,然后创建拉取请求,则上游将能够在您的拉取请求中自动合并而不会产生任何冲突(如果上游之间没有提交,则您在本地解析上游合并冲突并合并到你的本地/ fork中,然后创建pull请求)。

解决方案

在Github的选择分支选项卡,单击合并视图按钮,你的头叉向左拖动框,您的基本叉拖动到右边框。点击合并分支按钮。选择更改选项卡。选择每个有冲突的文件。请参阅'<<<<<<<'在外部查看器中编辑文件以保持headfork代码并将其添加到它。点击文件保存。点击提交按钮。点击同步。转到Git网站并尝试将基叉再次合并到头叉。它应该不再显示原始消息

1

与“混帐拉起源发展”,你只是拉从远程分支发展的最新变化到你的本地开发分支,你不合并到您的功能的最新变化科。你必须通过使用git merge所以本地做:

git merge develop 
1

你可能需要做两件事情,你是不是正在做:

  1. (可选)像帕特里克说,合并发展成功能分支。这将使你的分支加快发展,像你想要的。无论如何,这是一种很好的做法,可能会受到团队工作流程的强制要求。

  2. 在推动功能之前拉动功能分支。这可能是什么给你的错误。在合并开发之前,我会拉。