2014-04-01 286 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/...

相關問題