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 - Fatal编程技术网

Mercurial:获取分支的精确副本

Mercurial:获取分支的精确副本,mercurial,Mercurial,我在一个项目中有自己的分公司,其中有两个开发分公司(我们称之为“新分公司”和“旧分公司”),我与“新分公司”合并,然后错误地与“旧分公司”合并,现在我的分公司一团糟 有什么方法可以让我的分支看起来像“新分支”而不创建新分支吗?我不在乎失去我的更改,它只有几行,我可以再做一次。与其清除所有东西,为什么不完全清除一个坏的合并呢 Mercurial允许您删除修订,前提是您还删除该修订的所有子版本。这是一个扩展,但它与Mercurial的所有现代版本(从2.8开始)捆绑在一起,因此您只需将strip=添

我在一个项目中有自己的分公司,其中有两个开发分公司(我们称之为“新分公司”和“旧分公司”),我与“新分公司”合并,然后错误地与“旧分公司”合并,现在我的分公司一团糟


有什么方法可以让我的分支看起来像“新分支”而不创建新分支吗?我不在乎失去我的更改,它只有几行,我可以再做一次。

与其清除所有东西,为什么不完全清除一个坏的合并呢

Mercurial允许您删除修订,前提是您还删除该修订的所有子版本。这是一个扩展,但它与Mercurial的所有现代版本(从2.8开始)捆绑在一起,因此您只需将
strip=
添加到配置的
[extensions]
部分即可启用它

合并(然后提交合并)创建一个修订。您说(我想)您首先运行
hgmerge
并提交,然后运行
hgmerge
并提交

在这种情况下,最新的修订是您想要删除的不正确的修订。这也会删除合并后的任何修订,但是如果您最后做的是
hg merge&&hg commit
,则无论如何都没有此类修订

因此,运行
hg log
查看最近几次修订,找出错误的修订号,然后运行
hg strip-r
。这将删除该修订(及其所有子版本)


另请参阅和至。

这是一个专业网站。请让我们保持语言的干净和安全。只有在更改集未被推送到其他地方时,剥离方法才会起作用。如果所有内容都是一台计算机的本地内容,则这是正确的解决方案。@DaveInCaz:对,如果它们已被发送到存储库的其他副本中,y您还必须将它们从这些副本中剥离出来(这反过来意味着也没有人在它们上面构建任何新的提交,这一点很重要)。