在推送之前丢弃Mercurial中的本地分支

时间:2011-08-08 22:15:53

标签: mercurial branch clone

很多时候,我在我的本地Hg存储库上提交的内容很少,我不想推送,有时我想完全删除本地分支。但我不能回滚多个提交,这使我别无选择,只能创建一个新的克隆并再次下载整个存储库。这感觉很愚蠢,因为如果我可以删除我的本地分支,无论如何都没有影响远程存储库,那么我就不必创建和设置新的克隆。那么,它是如何在Mercurial中存在,还是有某种方法可以丢弃本地分支?

谢谢!

3 个答案:

答案 0 :(得分:16)

如果启用mq扩展名(与Mercurial捆绑在一起),则可以使用hg strip。但要小心,因为这会修改存储库的历史记录。安全方法是将您的存储库克隆到创建要丢弃的分支之前的版本,然后拉出要保留的其余变更集。

答案 1 :(得分:3)

如果您发现自己经常这样做,也许您应该使用书签而不是命名分支。 http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

答案 2 :(得分:1)

我知道它为时已晚,但它可能对任何人都有用:

如果尚未推送您的分支。

  • 仅当您完成提交但第一次回滚更改// example to convert text box value to 'DateTime' instance // if you have specific format, better to use DateTime.ParseExact or DateTime.TryParseExact DateTime endDate = Convert.ToDateTime(endDateTb.Value); // or endDateTb.Text property // compare both dates if (DateTime.Today > endDate) { // execute delete query here } 时, 尚未推送
  • 第二次运行hg rollback
  • 第三次运行hg update --clean
  • 第四次运行hg branch any-existing-branch