svn 代碼如何回滾。服務器
1、改動代碼沒有提交到倉庫
這種狀況下,使用svn revert就能取消以前的修改。
svn revert用法以下:
# svn revert [-R] something
其中something能夠是(目錄或文件的)相對路徑也能夠是絕對路徑。
當something爲單個文件時,直接svn revert something就好了;當something爲目錄時,須要加上參數-R(Recursive,遞歸),不然只會將something這個目錄的改動。
在這種狀況下也可使用svn update命令來取消對以前的修改,但不建議使用。由於svn update會去鏈接倉庫服務器,耗費時間。
注意:svn revert自己有固有的危險,由於它的目的是放棄未提交的修改。一旦你選擇了恢復,Subversion沒有方法找回未提交的修改。
2、改動已經被提交(commit)
這種狀況下,用svn merge命令來進行回滾。
回滾的操做過程以下:
一、保證咱們拿到的是最新代碼:
svn update
二、而後找出要回滾的確切版本號:
svn log [須要回滾的文件名]
可使用svn diff -r 2932:2922 [須要回滾的文件名],查看兩個版本(2932和2922)之間的差別,加號表明2922版本內容,減號表明2932版本內容。和容易看出版本間差別。
三、將2932版本回滾到版本號2922:
svn merge -r 2932:2922 回滾文件名
爲了保險起見,再次確認回滾的結果:
svn diff [回滾文件名] 減號:回滾文件發生改變的行,加號:回滾後的內容
發現正確無誤,提交。
四、提交回滾:
svn commit -m "回滾說明..."
提交後版本變成了2933。
3、總結
1. svn update,svn log,找到最新版本(latest revision)
2. 找到本身想要回滾的版本號(rollbak revision)
3. 用svn merge來回滾: svn merge -r : something