Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 如何剥离和重建现有分支并将其推送到主存储库?(又名用新分支替换分支)_Mercurial_Branch_Push_Dvcs - Fatal编程技术网

Mercurial 如何剥离和重建现有分支并将其推送到主存储库?(又名用新分支替换分支)

Mercurial 如何剥离和重建现有分支并将其推送到主存储库?(又名用新分支替换分支),mercurial,branch,push,dvcs,Mercurial,Branch,Push,Dvcs,背景: 有三个分支:我的、你的和主的。我从一个干净的克隆开始,唯一的要求是使mine分支像主分支一样,只需添加一些更改。我不想改变其他分支。当前的mine分支只有一个变更集,我希望删除该变更集并替换为新的变更集 我的尝试: 我的只包含一个变更集,我想放弃它。所以,我剥离了这个变更集,有效地删除了我的,将目录更新到主分支,重新创建了我的hg branch mine,添加了我的变更,提交了,现在我想推送。hg push-b矿的产量被中止:push产生了新的远程水头。。。并引用我的新变更集。但是,我只

背景:

有三个分支:我的、你的和主的。我从一个干净的克隆开始,唯一的要求是使mine分支像主分支一样,只需添加一些更改。我不想改变其他分支。当前的mine分支只有一个变更集,我希望删除该变更集并替换为新的变更集

我的尝试:

我的只包含一个变更集,我想放弃它。所以,我剥离了这个变更集,有效地删除了我的,将目录更新到主分支,重新创建了我的hg branch mine,添加了我的变更,提交了,现在我想推送。hg push-b矿的产量被中止:push产生了新的远程水头。。。并引用我的新变更集。但是,我只想用本地删除的旧变更集替换我的新变更集。hg传出列出我的新变更集,hg传入列出我的旧变更集


我想我很接近,有什么建议吗?在这里强制推行吗?欢迎提供替代解决方案和有用的参考资料。

在我尝试从mine分支中剥离我不想要的变更集,然后在mine分支上提交我的新变更集之后,以下是我的解决方案:

我通过强制推hg push-f解决了这个问题,从而在主存储库的矿山分支上创建了两个头部,然后使用hg strip扩展剥离了额外的头部。这是在我推送之后从主存储库中完成的,这可能并不完美,但它可以实现这些目的

需要强制推送来添加我的新变更集、新矿山分支和推送后必须完成的剥离,在主存储库上删除旧矿山分支。事实证明,剥离本地存储库中的mine分支并没有什么区别,因为剥离的变更集仍然存在于主存储库中,因此需要在推送之后剥离它们


如果有更好的解决方案或更好的表达方式,我很想知道

仅供参考:如果你先将其从主回购协议中剥离,你就不应该需要-f开关。希望我有更好的答案给你。。。