Mercurial Hg回到最后修订版

时间:2017-10-30 07:22:34

标签: mercurial

我已经使用drush命令下载了一个模块,然后我输入了

hg addremove

然后

hg commit -m "Added Module"

然后 hg pull --update

然后hg push

代码在reprository中推送,现在我的问题是如何回到之前的更改。我已经推送了代码,所以有任何方法可以通过一些修订来结账。如果我们可以结账,那么它会从reprository中删除所有添加的文件。

3 个答案:

答案 0 :(得分:2)

hg revert --all --rev "last revision number"

在提示之后,它将删除所有添加的文件,然后按下以返回上一次修订。

这对我有用

答案 1 :(得分:1)

您需要的是

hg update -r <changesetID>

这会将您的本地文件更改为指定的changesetID。更改将从本地版本中删除,但不会在远程中删除。一旦更改为与头部不同的修订版,您推送的任何更改都将创建新的头部。

答案 2 :(得分:1)

最初提出的问题对我来说有点不清楚,但是最后一句话,即

  

如果我们可以结帐,那么它会从reprository删除所有添加的文件。

表示对于失去的变化存在一些担忧。

首先,我要指出,mercurial不遗余力地避免丢失信息(除非特别授权进行不可恢复的更改),但是信息可能似乎丢失(例如,如果文件备份为ORIGINALFILENAME.orig);此外,信息实际上可能会丢失,例如如果有人做了修改备份的事情。

其次,如果您对“更新”命令是否会导致不必要的更改有任何疑虑,请务必使用--check选项,例如

hg --check update

--check选项可以缩写为-c但请注意:-C选项几乎具有相反的效果。

第三,可能值得指出的是,获得一个人理解信心的一种方法是创建一个测试存储库,并对其进行试验,例如:沿着这条线:

mkdir test; cd test; hg init; ....; ...
cd ..; hg clone test cloned ; ....; ...

这样你就可以在“克隆”存储库中试验“hg pull”。