Mercurial Hg 回到上次修订
Mercurial Hg get back to last revision
我已经通过使用 drush 命令下载它添加了一个模块,然后我输入
hg addremove
然后
hg commit -m "Added Module"
然后
hg pull --update
然后hg push
代码已推送到存储库中,现在我的问题是如何返回到之前的更改。我已经推送了代码,所以有什么方法可以通过一些修改来检查。如果我们可以签出,那么它将从 reprository 中删除所有添加的文件。
你需要的是
hg update -r <changesetID>
这会将您的本地文件更改为指定的 changesetID
。这些更改将从本地版本中删除,但不会从远程版本中删除。一旦更改为与头部不同的修订版,您推送的任何更改都会创建新的头部。
hg revert --all --rev "last revision number"
完成此操作后,它将删除所有添加的文件,然后推送回到上次修订。
这对我有用
最初提出的问题我有点不清楚,但是最后一句话,即
If we can checkout ,so will it delete all the added file from reprository.
表示担心更改丢失。
首先,让我指出 mercurial 竭尽全力避免丢失信息(除非特别授权进行不可恢复的更改),但是信息可能 似乎 丢失(例如,如果文件备份为 ORIGINALFILENAME.orig);此外,信息实际上可能会丢失,例如如果有人做了一些修改备份的事情。
其次,如果您担心 "update" 命令是否会导致不需要的更改,请务必使用 --check
选项,例如
hg --check update
--check
选项可以缩写为 -c
但要注意:-C
选项几乎具有相反的效果。
第三,可能值得指出的是,获得对自己理解的信心的一种方法是创建一个测试存储库,并对其进行试验,例如沿线:
mkdir test; cd test; hg init; ....; ...
cd ..; hg clone test cloned ; ....; ...
这样您就可以在 "cloned" 存储库中试验 "hg pull"。
我已经通过使用 drush 命令下载它添加了一个模块,然后我输入
hg addremove
然后
hg commit -m "Added Module"
然后
hg pull --update
然后hg push
代码已推送到存储库中,现在我的问题是如何返回到之前的更改。我已经推送了代码,所以有什么方法可以通过一些修改来检查。如果我们可以签出,那么它将从 reprository 中删除所有添加的文件。
你需要的是
hg update -r <changesetID>
这会将您的本地文件更改为指定的 changesetID
。这些更改将从本地版本中删除,但不会从远程版本中删除。一旦更改为与头部不同的修订版,您推送的任何更改都会创建新的头部。
hg revert --all --rev "last revision number"
完成此操作后,它将删除所有添加的文件,然后推送回到上次修订。
这对我有用
最初提出的问题我有点不清楚,但是最后一句话,即
If we can checkout ,so will it delete all the added file from reprository.
表示担心更改丢失。
首先,让我指出 mercurial 竭尽全力避免丢失信息(除非特别授权进行不可恢复的更改),但是信息可能 似乎 丢失(例如,如果文件备份为 ORIGINALFILENAME.orig);此外,信息实际上可能会丢失,例如如果有人做了一些修改备份的事情。
其次,如果您担心 "update" 命令是否会导致不需要的更改,请务必使用 --check
选项,例如
hg --check update
--check
选项可以缩写为 -c
但要注意:-C
选项几乎具有相反的效果。
第三,可能值得指出的是,获得对自己理解的信心的一种方法是创建一个测试存储库,并对其进行试验,例如沿线:
mkdir test; cd test; hg init; ....; ...
cd ..; hg clone test cloned ; ....; ...
这样您就可以在 "cloned" 存储库中试验 "hg pull"。