从服务器中删除变更集

时间:2015-07-30 13:36:04

标签: mercurial

我不小心提交了一些在存储库中没有位置的二进制文件。通常我只会使用NTH(2,SPLIT(NTH(2,SPLIT(hits.page.pagePath,'/')),'?')) ,但因为我是一个非常快速的程序员,所以在实现我所做的事情之前,我还将它们推送到服务器。有没有办法完全删除历史记录中的最后一次提交,并将其从服务器的树中删除?

我不介意删除这些文件并进行另一次提交,但我不想从现在开始将这些文件拖到任何地方(即我不想在历史记录中将它们放在新的{{{ 1}})。

1 个答案:

答案 0 :(得分:2)

您需要登录服务器并使用hg strip删除有问题的变更集。这不能通过hg push远程完成,因为推送是一种仅附加操作。如果其他人已经撤消了这些变更集,他们将需要执行相同的strip命令。您还应确保更改集不会出现在您自己的存储库中。

您还需要在服务器上启用strip extension才能使用strip命令。

如果您使用的是Bitbucket,则存储库设置页面会有一个“条带更改集”选项,它可以执行相同的操作。

一旦changeset evolution完全稳定,此过程将变得非常简单,但前提是服务器不发布。