SVN回滾的正確姿勢

第一種情況:改動沒有被提交

使用svn revert就能取消之前的修改。
svn revert用法如下:
# svn revert [-R] something 其中something可以是(目錄或文件的)相對路徑也可以是絕對路徑。當something爲單個文件時,直接svn revert something就行了;當something爲目錄時,需要加上參數-R(Recursive,遞歸),否則只會將something這個目錄的改動。

在這種情況下也可以刪掉文件,然後使用svn update命令,但不建議使用。因爲svn update會去連接倉庫服務器,耗費時間。

注意:svn revert本身有固有的危險,因爲它的目的是放棄未提交的修改。一旦你選擇了恢復,Subversion沒有方法找回未提交的修改。

第二種情況:改動已經被提交

這種情況下,用svn merge命令來進行回滾。 
​ 1、保證我們拿到的是最新代碼: 
svn update 
假設最新版本號是28。 
2、然後找出要回滾的確切版本號: 
svn log [something]
假設根據svn log日誌查出要回滾的版本號是25,此處的something可以是文件、目錄或整個項目
如果想要更詳細的瞭解情況,可以使用svn diff -r 28:25 [something]

3、回滾到版本號25:
svn merge -r 28:25 something
爲了保險起見,再次確認回滾的結果:
svn diff [something]
發現正確無誤,提交。

4、提交回滾:
svn commit -m ”Revert revision from r28 to r25,because of …” 
提交後版本變成了29。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章