我跑了'git pull'但仍然无法自动合并?

时间:2017-03-05 13:56:32

标签: git git-pull

我正在处理一个功能分支,一旦我的请求被接受,最终会合并到origin/develop

在将我的分支推到原点之前,我跑了:

$ git pull origin develop

将我的更改推送到origin/<feature-branch>后,Github说它&#34;无法自动合并&#34;并且这个分支是&#34; 3提交,12个提交后面开发&#34;。

我做错了什么,如何在推送我的更改之前确保我的本地分支与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>

3 个答案:

答案 0 :(得分:1)

这意味着如果没有上游所有者必须解决合并冲突,您的拉取请求就无法合并到上游。

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

<强>解决方案

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

答案 1 :(得分:1)

使用“git pull origin develop”,您只需将远程开发分支的最新更改提取到本地开发分支,您就不会将最新更改合并到功能分支中。您必须使用git merge

在本地执行此操作
git merge develop

答案 2 :(得分:1)

你可能需要做两件你目前没做的事情:

  1. (可选)像Patrick说的那样,合并发展成功能分支。这将使您的分支机构快速发展,就像您想要的那样。无论如何,这是一种很好的做法,可能会受到团队工作流程的强制要求。

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