0

我已经从默认(唯一)分支克隆了存储库。做了很多工作,有很多提交。我最终想将当前更改作为单独的开发流推送回存储库。所以我做了一个 hg 分支 8-2-。拉取当前在存储库中的内容(仍然只有默认分支)。合并对我的东西的更改。现在,当我尝试执行 hg push --new-branch 时,仍然会收到多头警告:

中止:推送创建新的远程头 57550f12d0f6!(你忘记合并了吗?使用 push -f 强制)

做了一个汞头:

变更集:132:8ab701e45e38 分支:8-2- 标签:tip 父级:131:3f2c30e8396d 父级:129:a45e28d1ef1b 用户:
Vance Neff 日期:2012 年 8 月 6 日星期一 14:55:14 -0400 摘要:合并意外头部

变更集:129:a45e28d1ef1b 用户:Vance Neff 日期:2012 年 8 月 2 日星期四 14:15:08 -0400 摘要:为变更集 7d88ac157486 添加了标签 8-1-29

变更集:113:57550f12d0f6 用户:Vance Neff 日期:2012 年 8 月 2 日星期四 18:29:32 -0400 摘要:为变更集 4ab1691d7120 添加了标签 8-2-29

我看到有问题的头是在我执行 hg 分支 8-2-,变更集 113 之前的最后一次提交。

我该如何解决这个问题?注意:我已经阅读了所有关于在这里使用命名分支的警告。为时已晚。

谢谢万斯

4

1 回答 1

1

I can’t see exactly what you did there and the current state of your repository, but it looks like you need to merge the two changesets on default together.

hg update 129
hg merge 113
hg commit -m "merge"

After that you will only have one head on default again and all is well.

Alternatively, you can use the strip command to remove all your (un-pushed) changes that went wrong. Then you can redo them. Note, make sure only to strip changesets appearing in hg outgoing so that you don’t remove any public changesets.

Tip: when I don’t feel confident about a command I’m about to run, I usually make a clone or copy of the repository before executing it, so that I can always easily revert back to the original state. One of the blessings of DVCS :).

于 2012-08-07T09:34:53.530 回答