所以我在Github上有一个项目的分支(http://www.github.com/intridea/grape),他们做了一个分支(边界 - >主)的大合并。它看起来像一个rebase。开源做了一个重大的更新,我不能合并
当我进入我的fork并运行git rebase upstream/master时,我遇到了合并冲突。我不确定为什么,但在自述文件中失败。我没有对自述文件进行任何提交。
我应该怎么做才能让我的主人保持最新状态而不破坏我的任何叉子分支?
所以我在Github上有一个项目的分支(http://www.github.com/intridea/grape),他们做了一个分支(边界 - >主)的大合并。它看起来像一个rebase。开源做了一个重大的更新,我不能合并
当我进入我的fork并运行git rebase upstream/master时,我遇到了合并冲突。我不确定为什么,但在自述文件中失败。我没有对自述文件进行任何提交。
我应该怎么做才能让我的主人保持最新状态而不破坏我的任何叉子分支?
我从您的评论中收集到,您在主分支上没有您必须保留的任务。在这种情况下,您可以只需git fetch
所有远程提交,然后将master
头点指向右边的哈希。请使用git reset <hash>
或手动编辑.git/ref/heads/master
文件。
您可能会失去在master上对分支更改进行重新绑定并对它们进行ff合并的能力,但始终存在常规合并。
如果上游确实重新分支分支(一个很大的否定),冲突可能来自上游前提交(改变了README
)与上游后提交合并(也改变了README
) 。
如果您尚未在本地存储库中进行任何提交,则可以简单地使用git reset --hard @{u}
来强制您的本地分支与上游分支匹配。
如果你已经提交了,并且上游分支被重定了,那么这个修复是非常复杂的并且取决于你的版本库的状态。 (这就是为什么对已经与其他人共享的提交进行重新绑定是粗鲁的。)有关常规帮助,请参阅git help rebase
中的“从上游Rebase恢复”一节。
藏起你的改变,然后在拉后应用它们? – 2012-03-31 06:38:42
我没有变化。清洁工作树。 – 2012-03-31 06:42:24