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

在推送Mercurial中的本地分支之前将其丢弃,mercurial,branch,clone,Mercurial,Branch,Clone,很多时候,我在本地Hg存储库上很少有我不想推送的提交,有时我想完全删除本地分支。但我不能回滚多个提交,这让我别无选择,只能创建一个新的克隆并再次下载整个存储库。这感觉很愚蠢,因为如果我可以删除我的本地分支,它无论如何都不会影响远程存储库,那么我就不必创建和设置新的克隆。那么,这是Mercurial的做法,还是有办法放弃本地分支 谢谢 如果启用mq扩展(与Mercurial捆绑),则可以使用hg strip。但是要小心,因为这会修改存储库的历史记录。安全的方法是将存储库克隆到创建要放弃的分支之前的

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


谢谢

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

如果您经常这样做,也许您应该使用书签而不是命名分支

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

如果您的分支尚未推送

  • 第一次回滚更改
    hg rollback
    仅当您完成提交但 还没推
  • 第二次运行
    hg更新--clean
  • 第三次运行
    hg分支任何现有分支
  • 第四次运行
    hg pull-u

除了Remy的答案之外,另一个有用的技巧是在本地存储库的克隆中工作。这样,即使您真的陷入了除了重新克隆之外别无选择的境地,它也是本地的,而且速度非常快(而不是从远程克隆)。这些天我只使用了。我最喜欢这个答案的第二部分。:)没有那个分支的克隆。