如何在mercurial中清除分支?

时间:2012-12-10 14:23:29

标签: mercurial

我是处理mercurial的新手。我在分支上尝试了一些混乱,现在我想在一个“默认”

中“平坦”所有分支
josir@josir-desktop:~/bitbucket/campus$ hg branches
default                       27:f28e8d8773c6
15                            20:6b434f251b7e

分支机构已被推送到远程仓库。

我想清除所有其他分支机构,丢弃其上的所有更改。阅读那些tutorial,我找不到解决它的最佳选择。

3 个答案:

答案 0 :(得分:2)

最简单的方法就是“关闭”不需要的树枝,让它们平静下来:

hg update -r "branch('15')"
...
hg commit --close-branch 

如果您只能对远程仓库进行推/拉访问,则在推送变更集后无法删除变更集。关闭分支并继续前进,或丢弃bitbucket仓库,清理当地仓库,然后重新开始。

要清理你的本地仓库,如果你有一个大混乱,最简单的方法是选择一个好的修改(例如,默认的提示,但你可以选择一个早期的)并克隆它及其所有的祖先:

hg clone -r <goodrev> messy-repo new-repo

The documentation(你已经引用过)对这个以及其他几个分支修剪选项有一个很好的解释,但是在你推到一个之后 none 是合适的。您无法控制的存储库。

答案 1 :(得分:0)

对于已经被推动的分支,你没有任何自由:只有--close-branch

答案 2 :(得分:0)

当我发出 hg branches 时,我得到了如上所述的两列报告:

josir@josir-desktop:~/bitbucket/spo$ hg branches
dev                          232:31cf2690dd47 (inativo)

我对此有何了解?

有2个已开设的分行:(

那是我的大错。 只有一个分支:dev

第二栏“232:31cf ......”只是“dev”分支的最后一次提交!!!