如何解决汞Mercurial:有什么办法“保留”工作副本以备后用?
| 场景:上一次提交后,您决定对代码库进行一些广泛的重构。一段时间之后,您意识到它花费的时间比预期的要长,您真的希望推迟重构一段时间,并执行更紧迫的任务。但是,您并不想失去到目前为止已经完成的所有重构工作。 因此,有一种方法可以对工作副本进行“归档”或“分支”(基本上,将其放在一边,但将其保留在存储库中以供以后访问),然后恢复到上一次的良好提交并从那里恢复,而不用担心创建多个头或将两者混为一谈?解决方法
不用担心“怕两个头”。两个头是很正常的状态。它被称为匿名分支,这是人们在Mercurial中进行临时分支的方式之一。
只需提交,然后更新到Tip-1,您就可以开始了:
hg commit -m \"working on XXX\"
hg update -r \"tip-1\"
而你走了。如果您想在该头上放一个书签(永久性比标签小的),可以,但是不必担心。
您总是可以用hg push -r HEAD
推一个头而不必推另一个头,甚至可以是hg push -r .
不要害怕头-它们正是使基于DAG的VCS强大的原因。
, 您可以使用mq,阁楼或搁置扩展名来执行此操作。
,
为您的重构版本分配标签
提交标签
再次克隆存储库
恢复到稳定版本
从稳定版本开始工作
不用担心多个头,以后可以轻松合并
由于mercurial使用硬链接,因此您可以将两个存储库都保留在本地计算机上,而占用的空间最少。
命令:
$ hg标签重构
$ cd ..
$ hg clone重构稳定
$ cd稳定
$ hg恢复-r REVISION_NUMBER
额外的帮助:
http://hgbook.red-bean.com/
http://kiln.stackexchange.com/
, 您可以通过以下简单方法进行操作:
$ hg diff -g > tmp
$ hg revert --all
您所做的更改现在将存储在“ 4”中。您可以使用
$ hg patch --no-commit tmp
然后您将回到原来的位置。有一些诸如shelve之类的扩展程序可以自动为您完成上述操作。
, 在git中,您将执行\'stash \'。根据此hg具有\'shelve \',但需要扩展。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。