【问题标题】:Amending a "public" changeset in Mercurial修改 Mercurial 中的“公共”变更集
【发布时间】:2012-08-25 20:52:55
【问题描述】:

我想修改上一次提交,但正在运行

hg commit --amend

给我

中止:无法修改公共变更集

即使我知道编辑变更集是安全的。如何更改我上次提交的阶段和/或告诉 Mercurial 可以安全地修改?

【问题讨论】:

    标签: mercurial mercurial-amend


    【解决方案1】:

    在 Mercurial wiki 上,有一个很好的 overview of phases

    要将当前提交从“public”转换为“draft”提交以允许修改,请使用

    hg phase --draft --force .
    

    (如果您想编辑不同的变更集,或者将. 替换为另一个修订版)。

    【讨论】:

    • 将其推送到上游仍然会导致两次提交的历史记录,并且本地“hg log”也确认了两次提交 - 有什么办法解决这个问题吗?所以它只显示修改后的提交?
    • 不,如果您推送了变更集,那么您不应该修改它,这就是 hg 阻止您这样做的原因。 (在某些情况下,您知道它只是被推送到您的另一个私人仓库,在这种情况下,这个答案很有用。)
    • @Daniel Sokolowski,您本可以在上游 repo 上使用撤消/回滚删除第一次提交的推送。但是您需要快速,并且在任何进一步的更改集被推送到它之前执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2015-03-17
    • 2016-06-02
    相关资源
    最近更新 更多