Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial:qrefresh用于选择文件_Version Control_Mercurial - Fatal编程技术网

Version control Mercurial:qrefresh用于选择文件

Version control Mercurial:qrefresh用于选择文件,version-control,mercurial,Version Control,Mercurial,假设我已经更改了许多文件,当我执行hg状态时,它会出现如下结果: M ../../file1 M ../../file2 M ../../file3 如果我只想对我对file2所做的更改执行qrefresh,并隐式放弃我对file1和file3所做的更改,使它们恢复到原始状态,该怎么办?mercurial有没有办法做到这一点?我对整个版本控制非常陌生。由于hg qrefresh将自动包含所有更改,您只需排除某些文件,刷新将从修补程序中删除这些文件的所有更改。然后您可以还原这些文件 这将刷新修补

假设我已经更改了许多文件,当我执行hg状态时,它会出现如下结果:

M ../../file1
M ../../file2
M ../../file3

如果我只想对我对file2所做的更改执行qrefresh,并隐式放弃我对file1和file3所做的更改,使它们恢复到原始状态,该怎么办?mercurial有没有办法做到这一点?我对整个版本控制非常陌生。

由于
hg qrefresh
将自动包含所有更改,您只需排除某些文件,刷新将从修补程序中删除这些文件的所有更改。然后您可以还原这些文件

这将刷新修补程序中除
file1
file3
之外的所有内容(修补程序现在不包含以下任何一项的更改):

现在
file1
file3
仍有一些更改,需要恢复:

hg revert ../../file1 ../../file3
这会将当前版本更改为
。/../file1.orig
。/../file3.orig
,以防您再次需要更改。您还可以添加
--no backup
开关,这些开关将不会被创建

您也可以按相反的顺序执行此操作:

hg revert ../../file1 ../../file3
hg qrefresh
这次刷新不需要参数,因为与工作目录的父目录相比,这两个文件没有变化,因此将从修补程序中消失(刷新修补程序基本上会重新写入修补程序)。这是我要做的,但我还想演示
-X
开关


查看
hg-help-revert
hg-help-qrefresh
了解更多信息。

还可以查看
hg-qrefresh.././file2
注意,这将忘记当前修补程序中的所有其他文件。
hg revert ../../file1 ../../file3
hg qrefresh