我已经使用drush命令下载了一个模块,然后我输入了
hg addremove
然后
hg commit -m "Added Module"
然后
hg pull --update
然后hg push
代码在reprository中推送,现在我的问题是如何回到之前的更改。我已经推送了代码,所以有任何方法可以通过一些修订来结账。如果我们可以结账,那么它会从reprository中删除所有添加的文件。
答案 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”。