合并一个未更新的主分支上的分支

3

问题

我在一个最后提交未更新的主分支中合并了一个分支。

解决方法

我将分支合并到了主分支中。

git merged BRANCHNAME

冲突

Automatic merge failed; fix conflicts and then commit the result.

git commit -a -m "Resolved conflicts while merging email-fix branch"

然后我试图将所有内容推送到 origin master,但它显示:

 ! [rejected]        master -> master (non-fast-forward)

我该如何解决这个问题?
1个回答

1

你可以执行以下操作:

  • 使用 git pull --rebase 命令,以便在最新的主分支上重放您的合并
  • 然后执行 git push 命令(应该会顺利进行)

另一种选择是强制推送,这意味着在远程主分支上丢失最近的历史记录,这不是一个很好的想法。

这两种选择都在 Git FAQ 中提供,尽管只推荐使用简单的 git pull 命令。
git push man page 中提到了 git pull --rebase 命令:

例如,假设您和其他人从相同的提交 X 开始,并且您构建了一个导致提交 B 的历史记录,而另一个人构建了一个导致提交 A 的历史记录。历史记录如下所示:

      B
     /
 ---X---A

或者,您可以使用“git pull --rebase”在A的基础上重新定位在XB之间进行的更改,并将结果推回。重新派生将创建一个新的提交D,该提交会在A的基础之上构建XB之间的更改。
      B   D
     /   /
 ---X---A

再次强调,使用此提交更新A将会快进,并且您的推送将被接受。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接