SVN:代碼復原問題

來源:互聯網
上載者:User

第一種情況:當代碼還未提交時


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

# svn revert [-R] somefile

其中somefile可以是目錄或檔案的)相對路徑也可以是絕對路徑。

當somefile為單個檔案時,直接svn revert somefile就行了;

當somefile為目錄時,需要加上參數-R(Recursive,遞迴),否則只會將somefile這個目錄改動。

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

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


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


這種情況下,用svn merge命令來進行復原,復原的操作過程如下: 1、保證我們拿到的是最新代碼: svn update

假設最新版本號碼是28。

2、然後找出要復原的確切版本號碼:

svn log [somefile]

如果log很多,可以使用參數--limit

svn log --limit 10 [somefile]

假設根據svn log日誌查出要復原的版本號碼是25,此處的somefile可以是檔案、目錄或整個項目

如果想要更詳細的瞭解情況,可以使用

svn diff -r 28:25 [somefile]

3、復原到版本號碼25:

svn merge -r 28:25 [somefile]為了保險起見,再次確認復原的結果:svn diff [somefile]發現正確無誤,提交。4、提交復原:svn commit -m "Revert revision from r28 to r25,because of ..."

提交後版本變成了29。


將以上操作總結為三條如下:1. svn update,svn log,找到最新版本latest revision)2. 找到自己想要復原的版本號碼rollback revision)3. 用svn merge來復原: svn merge -r 28:25 somefile

注意:雖然 svn up -r 25 somefile 也可以使檔案復原,但是當提交時由於不是最新版本而無法提交,還需要先更新,拷貝,再提交,所以不建議使用。


補充:

svn忽略檔案或檔案夾

svn propset svn:ignore '*' template_c/



本文出自 “phper” 部落格,請務必保留此出處http://janephp.blog.51cto.com/4439680/1300561

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.