2014-04-01 255 views

回答

9

如果您还没有签出你编辑的文件,首先做

p4 reconcile ... 

度日Perforce公司跟踪的变化。

如果要撤消的更改已经在任何更改列表中,则不需要此操作。

然后,从工作区的根,

p4 revert ... 

...是Perforce的通配符指定目录下的一切,而不是你要填写自己的东西)。

如果您还想从磁盘中删除未跟踪的文件,那么如果您使用的是2013.2或更高版本,则可以将-w传递到p4 revert以删除新添加的文件。有关此选项的一些背景信息,请参见this answer

reconcile步骤将首先检测这些文件并将它们标记为添加,然后revert步骤将取消标记以添加和删除它们。如果-w不可用,那么没有干净的方法来执行此操作,文件将保留未跟踪状态并在恢复后保留在磁盘上。

+1

无论这些命令将删除本地文件的Perforce不知道,这是'git的一个关键区别重置--hard'。 – damian

+1

好点,p4协调会检测到它们,但p4恢复只是恢复“添加标记”而不删除文件。似乎新的-w国旗可以处理这个问题,我编辑了我的答案。 –

+0

嗯,我只是试过了。如果我在p4控制下cd进入一个文件夹,并且'mkdir testdelete; cd testdelete; touch testdeletefile.txt; cd ..; p4 revert -w .' p4只是说'文件没有在这个客户端上打开。 'git reset --hard'会删除文件夹。这对于git用户来说是一个至关重要的差异。 – damian

3

p4 revert是您正在查找的命令。

请记住,如果你想只恢复指定的变更表时,必须指定其变更列表号,如:

p4 revert -c changelistnumber

或者,如果你不是从工作区根目录运行它,指定工作区/客户名称,如:

p4 revert //myWorkspace/...

相关问题