在推送之前丢弃 Mercurial 中的本地分支
Posted
技术标签:
【中文标题】在推送之前丢弃 Mercurial 中的本地分支【英文标题】:Discard a local branch in Mercurial before it is pushed 【发布时间】:2011-10-22 18:54:04 【问题描述】:很多时候,我在本地 Hg 存储库上几乎没有提交,我不想推送,有时我想完全删除本地分支。但是我不能回滚多个提交,这让我别无选择,只能创建一个新的克隆并再次下载整个存储库。这感觉很愚蠢,因为如果我可以删除无论如何都不会影响远程存储库的本地分支,那么我就不必创建和设置新的克隆。那么,是 Mercurial 中的情况还是有一些方法可以丢弃本地分支?
谢谢!
【问题讨论】:
除了 Remy 的回答之外,另一个有用的提示是在本地存储库的克隆中工作。这样,即使您确实遇到了除了重新克隆别无选择的情况,它也是本地的并且非常快(而不是从远程克隆)。 Also see this Q&A. 这些天我只用git。 【参考方案1】:我知道为时已晚,但它可能对任何人都有用:
如果你的分支还没有被推送。
第一次回滚更改hg rollback
仅在您完成提交但
尚未推送
第二次运行hg update --clean
第三次运行hg branch any-existing-branch
第四次运行hg pull -u
【讨论】:
【参考方案2】:如果您发现自己经常这样做,也许您应该使用书签而不是命名分支。 http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/
【讨论】:
【参考方案3】:如果启用 mq 扩展(与 Mercurial 捆绑),则可以使用 hg strip
。不过要小心,因为这会修改存储库的历史记录。安全的方法是将您的存储库克隆到您要丢弃的分支创建之前的修订版,然后提取您要保留的剩余变更集。
【讨论】:
我最喜欢这个答案的第二部分。 :) 克隆没有那个分支。以上是关于在推送之前丢弃 Mercurial 中的本地分支的主要内容,如果未能解决你的问题,请参考以下文章