【问题标题】:Mercurial : How to revert to a prev version after performing pushMercurial:执行推送后如何恢复到以前的版本
【发布时间】:2018-04-26 10:07:03
【问题描述】:

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

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

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

请让我解释一下,这是第一次这样做。谢谢。

I want to revert back to 3313 revision

【问题讨论】:

    标签: mercurial tortoisehg


    【解决方案1】:

    你可以自己动手,删除不必要的文件,提交并推送。

    去你的B分行

    hg update -r 3316
    

    删除文件,提交并推送

    hg forget yourfilethere
    
    hg commit -m "Remove unecessary files"
    
    hg push
    

    如果有帮助请告诉我!

    【讨论】:

      【解决方案2】:

      如果您想要删除或修改推送的修订,那么恐怕 Mercurial(按设计)不支持这一点。 (您可以将修订的阶段更改为“草稿”并删除或修改它,但是当您再次拉出时,旧修订将重新出现。)

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

      我们在工作中也遇到过类似的问题,有些用户向存储库提交了非常大的文件,之后在存储库上做了很多工作。我们解决它的唯一方法是使用“转换”扩展来删除文件,然后推送到一个全新的存储库。 (如果我们只是将转换后的存储库推送到现有存储库,这只会从提交错误文件的位置开始创建重复的修订。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多