如何在mercurial中删除多个头

Mad*_*ana 3 mercurial

我是mercurial的新手.我错误地推了一些文件,它在主存储库中显示为不同的头.谁能告诉我如何删除那个头.

非常感谢你

Rob*_*ert 9

您可以通过编辑.hgrc文件来启用"mq"扩展名.确保存在以下行:

[extensions]
mq =
Run Code Online (Sandbox Code Playgroud)

之后,您可以"删除"删除它的特定修订,以便您只有一个头:

hg strip ...
Run Code Online (Sandbox Code Playgroud)

  • @罗伯特:他说他被推了。剥离公共变更集不会有任何帮助。 (2认同)

Ste*_*aye 5

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

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

假设你有一棵这样的树:

o  4 : Head 1
|
o  3 : Another commit
|  
| o 2 : Head 2
| |
|/
o  1 : A commit
|
o  0 : Initial commit
Run Code Online (Sandbox Code Playgroud)

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

hg update 4
hg merge 2
hg commit -m "Merge"
Run Code Online (Sandbox Code Playgroud)

这将创建另一个提交,其中包含修订版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
Run Code Online (Sandbox Code Playgroud)

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