Git仓库是不同步的底垫后

我已经压扁2提交(A和B)到一个新的提交(C)。 前两次提交(A和B),其中去除。 我把这些提交来自我发展回购到一个中心(裸)存储库。 该git-log两个回购确认提交A和B已被删除。 问题是,当我做这已经有三分之一库(A和B)的拉它目前拥有三个提交(A,B和C)。

我本来以为拉将同步这些变化。 我是否需要签A〜1,然后在新的修改合并? 这似乎是一个麻烦,特别是在生产环境中。

--------------解决方案-------------

这主要是包括在“从上游底垫中恢复”,但它是一个有点模糊,我的口味。

你应该知道git pull origin master正好等于git fetch master; git merge origin/master git fetch master; git merge origin/master 。 换句话说,你问混帐合并B和C一起。 还有一个原因是不可取的衍合已经被发布的更改:因为它是很容易复活旧的提交。

由于这是一个简单的南瓜, git pull --rebase就能算出这个。 重置你在哪里错误合并之前,说git pull --rebase origin master (或git rebase origin/master ,既然你已经获取)。 这会奇迹般地移植A,B,任何后来提交到C,它会发现,A + B = C。

您可能希望使这个默认的,因为它可以让你避免这样的混乱-设置配置branch.<name>.rebase为true。

分类:混帐 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.683 (s). 10 q(s)