如何不推动封闭的分支机构

时间:2016-07-15 12:32:05

标签: mercurial

我错误地创建了三个分支 我用命令hg commit --close-branch -m "Closing this head"关闭了它们 然后我切换到另一个分支MVDM-9。

我想将我的更改推送到远程存储库,但是我收到此错误。

  

hg push
  推送到ssh://hg@bitbucket.org/Predictix/mvideo-modeler
  寻找变化   abort:push创建新的远程分支:MVDM-57C,MVDM-57T,MVDM-60!   (使用'hg push --new-branch'创建新的远程分支)

MVDM-57C,MVDM-57T,MVDM-60是我关闭的分支。
我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你有几个选择。

第一个选项(安全)
您可以推送您想要推送的修订而不是推送所有内容。你只需使用

hg push -r <revision_number>

<revision_number>替换为您要推送的最新修订号,然后它将仅推送该修订版及其中的修订版。

第二个选项(危险)
如果您从未将您关闭的分支机构推送,拉出或复制到其他任何地方,并且您不想将它们保留在历史记录中并且永远不会使用它们,那么您可以strip进行更改。
在开始执行此操作之前,请确保使用存储库的备份克隆,因为您可以轻松销毁现有副本。

如果尚未启用条带扩展,则需要先启用条带扩展,然后使用

hg strip -r <revision_number>

这将从存储库中删除<revision_number>及其所有子项,因此您需要注意选择要删除的修订版本。 如果你已经安装了TortoiseHg,你可以通过Workbench UI完成这项工作,你可以一次修改,直到你得到你想要的为止。

您可以随时首先使用选项1,然后在将所需修订推送到远程仓库之后,您可以从本地副本中删除不需要的分支。