我克隆了一个Mercurial仓库并对签出的代码进行了一些更改。然后,我抓住了这些更改(7个文件)并使用hg commit
提交了它们,但没有先创建书签。
这是我的hg summary
命令的输出:
parent: 8172:b39efc1322fe tip
Made some changes in my feature
branch: default
commit: 7 modified
update: 2 new changesets, 3 branch heads (merge)
phases: 3 draft
这些更改已准备好至少推迟一周,因此我想切换到新书签并处理代码的其他部分。
问题在于我意识到我在没有书签的情况下做了提交,所以我担心在切换到新书签后,我提交的更改可能会丢失。
是否有一种简单的方法可以将这些已提交的更改移动到新书签中?
答案 0 :(得分:6)
根本没有必要害怕:mercurial不会忘记你提交的任何内容,除非你明确地同时执行这两项操作:启用历史编辑扩展并愿意以实际删除一个或多个更改集的方式使用它们。
Mercurial不是git,当它当前没有签出且没有附加名称(书签)时,mercurial永远不会忘记或垃圾收集变更集。
您可以使用hg heads
向您展示所有头脑。您始终可以创建新书签,并通过hg bookmark --rev XXX MyBookmark
附加到任意更改集,其中XXX是您要将书签附加到的changesetID。
答案 1 :(得分:-3)
我担心在切换到新书签后,我提交的更改可能会丢失。
你怎么能想象这个? OMFG,您已将更改提交到存储库(您的克隆),其中包含此更改集(8172:b39efc1322fe
)。当|如果您svn up
到另一个节点时,您只需更改工作目录的父级,那么您就可以获得" 2新变化"并且,结果" 3个分支头" - 2个新的变更集+你的提交8172,这个b39efc1322fe
将始终是其中一个,即使你已经在另一个工作中工作。
如果您害怕忘记它(如何???真的),您可以使用hg bookmark -r b39efc1322fe $WIP && hg commit -m "Bookmarked my work"
对此(已提交)变更集进行事后书签,以便hg up $WIP
什么时候继续这一系列改变