Mercurial:如何在执行推送后恢复到prev版本

时间:2018-04-26 10:07:04

标签: mercurial tortoisehg

我有两个分支让我们说A和B.我在A中做了一些更改并将我的代码提交到A然后我将A合并到B中并进行了推动。

现在的问题是我在B中添加了一些不必要的文件。

我想要恢复到B的上一个版本。我看到很少有解决方案来执行hg update -r然后强行将其推送到repo,这可能会导致我不想做的新头。

请原谅我解释,这是第一次这样做。感谢。

I want to revert back to 3313 revision

2 个答案:

答案 0 :(得分:0)

你可以站起来,删除不必要的文件,提交并推送。

转到你的分行B

hg update -r 3316

删除文件,提交并按

hg forget yourfilethere

hg commit -m "Remove unecessary files"

hg push

让我知道它是否有帮助!

答案 1 :(得分:0)

如果您想要删除或修改推送的修订版,那么我担心Mercurial(按设计)不支持此功能。 (您可以将修订版的阶段更改为“草稿”并删除或修改它,但是当您再次拉动时,旧版本将重新出现。)

如果你真的需要删除修订版(例如它包含一些大文件),那么在本地存储库中你无能为力;这可以做到的唯一方法是在远程存储库上(例如让管理员直接在远程存储库上运行hg strip或其某些等效物; BitBucket接口支持剥离修订版。)

我们在工作中遇到了类似的问题,其中一些用户将非常大的文件提交到存储库,之后在存储库上完成了大量工作。我们解决它的唯一方法是使用'convert'扩展来删除文件,然后推入一个全新的存储库。 (如果我们刚刚将转换后的存储库推送到现有存储库,那么就会从提交错误文件的位置开始创建重复的修订版。)