Git分支在rebase之后分歧

我已经在当地推出了一个已经推出的分支机构。

Gitbuild议我的分支和远程分支,并且:

“分别有109个和73个不同的提交”

将推动我的分支解决这个问题 – 即这是预期之后,一个rebase?

当您重新分支分支时,您必须重写任何提交之上的提交,这些提交位于您要重新绑定的分支中的提交之上。 这是因为提交的属性之一是其父(或父母)。 当你重新绑定的时候,你正在改变你的分支上最老的本地提交的父对象,从而改变你所有本地提交的提交哈希,因为这个改变是通过提交传递的。

既然你已经推动了分支,你应该已经在源代码分支中合并,而不是重新绑定它。 有可能“强行推送”你的新分支(使用-f标志),但是正常推送将不起作用,因为分支历史的完整性会受到干扰。 如果你在这个分支上与其他人合作,推动力是一个坏主意,因为当他们的历史突然不匹配时,会导致其他的合作者变得非常困惑。

TL; DR – 如果您不合作,请使用push -f推分支。 如果是,则将分支重置为以前的状态,然后在源分支中合并。

你所有的提交已经改变了ID,所以分stream并不是真正的分歧。

要解决您的问题,您必须覆盖远程分支:

 git push -f origin experiment 

http://git-scm.com/book/ch3-6.html

说明:

看看在这个图像中,C3不是C3之后,而是C3。 这是因为它不完全是C3,但它的所有代码更改。

变基

在另外一张图片上,你可以看到遥控器被看到时发生了什么变形,以及为什么会有分stream。

分歧和混帐推

无论如何,在你做强制推送之后,它会告诉你它做了一个(强制更新),你应该没问题。

检查顶部的链接,并search“git push –force”。 你会看到更详细的解释。