常用svn命令說明
1、從SVN倉庫中檢索出代碼到工作拷貝:
# svn checkout https://svn.sinaapp.com/appname [workcopy]
其中workcopy是可選的,如果不寫workcopy,SVN會默認將appname做為workcopy。
如果只檢索某個版本:
# svn checkout https://svn.sinaapp.com/appname/appversion [workcopy]
只檢索某個版本的某個目錄:
# svn checkout https://svn.sinaapp.com/appname/appversion/folder [workcopy]
2、向SVN倉庫提交代碼:
# svn commit -m "here is message"
3、將本地文件添加到工作拷貝:
# svn add something
注:如果something為文件,svn會將這個文件添加到工作拷貝;如果something是目錄,svn會將目錄及裡面的文件全添加到工作 拷貝。something也可以是通配符*,這樣會忽略已經添加過的文件。
4、從工作拷貝中刪除一個文件:
# svn delete something
注:如果something為文件,svn會將這個文件從工作拷貝中刪除;如果something是目錄,svn會將目錄及裡面的文件全部從工作 拷貝中刪除。
5、直接從SVN倉庫中刪除文件:
# svn delete -m "delete something" https://svn.sinaapp.com/appname/appversion/something
注:可以從SVN倉庫中直接刪除單個文件或單個目錄甚至某個版本。
6、將一個本地項目導入到SVN倉庫:
導入應用的某個版本:
# svn import localdir https://svn.sinaapp.com/appname/appversion
注:要確保目前應用的appversion不沖突。
7、查看工作拷貝中的文件或目錄狀態:
# svn status [something]
8、更新自己的工作拷貝:
# svn update
注:從SVN倉庫下載最新版本,此命令會導致本地沒有提交的更改丟失,建議使用此命令前先查看一下本地拷貝狀態(svn status).
9、取消對代碼修改
取消對代碼的修改分為兩種情況。
第一種情況:改動沒有被提交(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。
將以上操作總結為三條如下:
a. svn update,svn log,找到最新版本(latest revision)
b. 找到自己想要回滾的版本號(rollbak revision)
c. 用svn merge來回滾: svn merge -r : something
10、查看SVN倉庫日志信息:
# svn log [workcopy]
查看所有本地的歷史日志,如果workcopy為某文件,那麼就是查看某個文件的日志信息。
查看SVN倉庫所有文件的日志信息:
# svn log https://svn.sinaapp.com/appname/
這個命令會查看所有修改過的日志。
注:SAE提供的SVN服務完全支持標准SVN的所有命令,更詳細的使用說明請查閱SVN官方幫助文檔。