意外地只改变了我的一个变更集

时间:2010-10-14 00:45:51

标签: mercurial rebase

我有3个更改集,我想在最新版本之上进行重新设置。不幸的是,我只选择其中一个进行重新定位,所以这样做了合并。有什么方法可以撤消rebase或更改它,以便其他两个更改集也得到重新定位?

2 个答案:

答案 0 :(得分:6)

假设您没有将其推送到其他仓库以供其他人抓取,那么您可以将这些变更集放在您想要的图表上的任何位置。您可以使用hg rebase移动变更集,并使用hg strip修剪changsets及其后代。

strip和rebase将“撤消”信息保存为.hg / strip-backup /

中的bundle个文件

请注意,默认情况下,mercurial既不启用strip也不启用rebase。您需要在.hgrc文件中启用它们。

答案 1 :(得分:1)

如果这是你做的最后一件事,你可以做一个'hg rollback'这是一个单级撤消。但是,如果你做了任何事情,因为它改变了存储库状态(推送,拉取,提交等),那么回滚对你没有帮助。

如果有任何安慰,合并通常比重新定位更可取,并且有大量合并的善变历史表明某人正在充分利用mercurial。 :)