如何删除多个头?

时间:2013-01-21 09:36:21

标签: mercurial

我错误地推了一些文件,它在主存储库中显示了不同的头。我该如何删除那个头?

2 个答案:

答案 0 :(得分:8)

您可以通过编辑.hgrc文件来启用“mq”扩展程序。 确保存在以下行:

[extensions]
mq =

之后你可以“删除”删除它的特定修订版,这样你只有一个头:

hg strip ...

答案 1 :(得分:5)

我认为你真的不想删除头部。如果你这样做,你将失去在这些分支中完成的工作。

您可能希望将头部合并为一个分支。

假设你有一棵这样的树:

o  4 : Head 1
|
o  3 : Another commit
|  
| o 2 : Head 2
| |
|/
o  1 : A commit
|
o  0 : Initial commit

要摆脱额外的头而不丢失其中包含的工作,你会合并两个头(本例中的修订版2和4),如下所示:

hg update 4
hg merge 2
hg commit -m "Merge"

这将创建另一个提交,其中包含修订版2,3和4中的所有更改,如下所示:

o     5: Merge
|\
o |   4 : Head 1
| |
o |   3 : Another commit
| | 
| o   2 : Head 2
| |
|/
o     1 : A commit
|
o     0 : Initial commit

当多个开发人员在同一个存储库上工作时,这是标准过程。