svn如何回滾到之前版本


第一種情況:改動沒有被提交(commit)。

這種情況下,使用svn revert就能取消之前的修改。

svn revert用法如下:

# svn revert [-R] something

其中something可以是(目錄或文件的)相對路徑也可以是絕對路徑。

當something為單個文件時,直接svn revert something就行了;當something為目錄時,需要加上參數-R(Recursive,遞歸),否則只會將something這個目錄的改動。

在這種情況下也可以使用svn update命令來取消對之前的修改,但不建議使用。因為svn update會去連接倉庫服務器,耗費時間。

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

 

第二種情況:改動已經被提交(commit)。

這種情況下,用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。

  將以上操作總結為三條如下:

  1. svn update,svn log,找到最新版本(latest revision)

  2. 找到自己想要回滾的版本號(rollbak revision)

  3. 用svn merge來回滾: svn merge -r : something


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM