【问题标题】:How to remove a 'branch' in tortoise HG如何删除乌龟 HG 中的“分支”
【发布时间】:2012-10-31 20:37:22
【问题描述】:

我不小心更新到以前的版本,并在默认分支下从它提交,导致默认分支下有 2 个头。我想将其中一个头移到另一个分支。我想移动的这个头是在几笔交易前完成的。如何更改它所属的分支,以便我可以在不强制推送的情况下将另一个头推送到服务器?

到目前为止,我还没有向服务器推送任何内容。如果归根结底,我可以复制我需要的文件并重新克隆存储库。

【问题讨论】:

    标签: branch tortoisehg


    【解决方案1】:
    1. 变基
    2. Graft(移动到新位置)+ Histedit(杀死旧变更集)
    3. MQ,如果你知道的话(将 cset 转换为 MQ 补丁,更新为新的父级,qpop,qfinish)

    【讨论】:

      【解决方案2】:

      您可以使用 rebase 扩展来重写历史记录。它已经安装了,你只需要启用它(从文件 > 设置 > TortoiseHG 中的扩展)。在 tortoiseHG 里面你可以找到它,如果你右键点击一个修订,去“修改历史”,然后选择“rebase”。但为了获得更多控制,我建议使用命令行。

      假设您有一个修订版w,它是默认分支的新分支。 (w 可能有后代会随之移动)。

      -o-o-o-o
          \
           w
      

      它的父级应该是另一个分支中的某个修订版b(未显示)。只需输入:

      hg rebase --source w --dest b --detach
      

      就是这样!它将变基w 及其所有后代(如果有的话),因此它的新父级是b。除非您添加--keepbranches,否则它将分配给与b 相同的分支名称。 --detach 标志可确保您在某些情况下不会得到复杂的拓扑结构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-13
        • 1970-01-01
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-20
        • 1970-01-01
        相关资源
        最近更新 更多