我意外地更新到以前的版本,并在默认分支下从它提交,导致默认分支下的2个头。我想将其中一个头移到另一个分支。我想要移动的这个头是几个交易前做的。如何更改它所属的分支,以便我可以在没有强制推动的情况下将另一个头推到服务器上?
到目前为止,我还没有向服务器推送任何东西。如果归结为它,我可以复制我需要的文件并重新放入存储库。
答案 0 :(得分:0)
您可以使用 rebase 扩展名重写历史记录。它已经安装,你只需要启用它(来自文件>设置> tortoise in toGot)。在tortoiseHG内部,如果右键单击修订版,可以找到它,转到“修改历史记录”,然后选择“rebase”。但是为了更多的控制,我建议你去命令行。
假设您有一个修订版w
,它是默认分支的新头。 (w
可能有后代会随之移动。)
-o-o-o-o
\
w
其父级应该在另一个分支(未显示)中进行了一些修订b
。只需输入:
hg rebase --source w --dest b --detach
就是这样!它会重新定义w
及其所有后代(如果有的话),以便它的新父级为b
。除非您添加b
,否则它将被分配到与--keepbranches
相同的分支名称。标记--detach
可确保在某些情况下不会出现复杂的拓扑结构。
答案 1 :(得分:0)