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您还必须将它们从这些副本中剥离出来(这反过来意味着也没有人在它们上面构建任何新的提交,这一点很重要)。