【吐血整理】SVN命令行,Subversion的正確使用姿勢,讓版本控制更簡單~


一、寫在前面

     前面一直博主一直用svn的桌面版本,但看項目經理一直都用的命令行方式,不為性能,還能直接裝逼呀!在這里先感謝趙哥,也把它分享給感興趣的你們~

二、直接上干貨

1. svn checkout path # path 是服務器上的目錄

功能:從服務器 checkout 代碼
簡寫:svn co path

2. svn status path # path 是文件或目錄 

功能:查看指定文件或目錄的狀態
簡寫:svn st path
字段1:
? 不在svn控制中
M 內容被修改
C 發生沖突
A 預定加入到版本庫
K 被鎖定
擴展:svn st -v path # 顯示 path 文件的詳細狀態
字段1: 同上
字段2: 工作版本號
字段3: 最后一次修改的版本號
字段4: 最后一次修改的修改人

3. svn diff path # path 是需要比對的文件  

功能:比對指定的文件

簡寫:svn di path
擴展:svn diff -r m:n path # path 文件在版本m和版本n之間進行比較

4. svn add path # path 是要添加的目錄或文件

功能:添加指定的目錄或文件

5. svn log path # path 是要查看的目錄或文件

功能:查看指定目錄或文件的所有修改紀錄,及版本號的變化
擴展:svn log -l count path # count 是條數,path 是目錄文件
功能:查看指定目錄或文件的最近 count 次提交信息
擴展:svn log -r revision # revision 是要查看的版本
功能:查看指定版本的 log
擴展:svn log -v
功能:列出詳細的log信息,包括每一個版本都修改了哪些文件

6. svn info path # path 是要查看的目錄或文件

功能: 查看指定目錄或文件的詳細信息

7. svn revert [-R] path # path 是要恢復的目錄或文件

功能: 恢復本地指定的目錄或文件的修改

8. svn update

功能:更新svn庫到最新版本 簡寫:svn up
擴展:svn update path # path 是要更新的目錄或文件
擴展:svn update -r m path # path 要更新的目錄或文件;
# m 是目標版本號

9. svn commit -m "message” # message 是提交的信息

功能:將當前目錄下的所有已修改文件進行提交
簡寫:svn ci
擴展:svn ci path # path 是要提交的文件或目錄

10. svn proplist

功能:查看當前目錄下的 svn 屬性信息
簡寫:svn plist

11. svn propget prop # prop 屬性

功能:查看屬性的值,如 :svn:ignore
簡寫:svn pget prop

12. svn propset prop value path

# prop 屬性,value 值,path 路徑
功能:在 path 路徑下,設置 prop 屬性的值為 value
簡寫:svn pset prop value path

13. svn cp -m “message” original_url branch_url

#original_url 原始版本庫地址,branch_url 要創建的branch的地址
功能:在svn服務端創建一個分支

14. svn merge original_url # original_url 主干的版本庫地址

功能:將主干的最新代碼合並到分支上
前提:當前所在目錄是分支的根目錄

15. svn merge —reintegrate branch_url

# branch_url 分支的版本庫地址
功能:將分支合並到主干上
前提:當前所在目錄是主干的根目錄

16. svn rm branch_url # branch_url 分支的版本庫地址

功能:刪除分支

17. svn copy -m “message” original_url tag_url

# original_url 原始版本庫地址,tag_url 要創建的tag的地址
功能:在svn服務端創建一個tag

18. svn merge -r m:n path 


# m 當前最新的版本號
# n 要回滾的目標版本號
# path 文件或目錄
功能:將文件或目錄回滾到指定的版本號(反相合並)
與 svn up -r m path 的區別:
up只進行內容回退,版本庫不記錄此次文件的改變,svn st看不到文件的改變,無法提交revert內容
merge不僅進行內容回退,版本庫會記錄文件的改變,svn st可以看到文件的該表,可以將改變提交

19. svn resolve —accept working [-R] path

功能:解決指定文件或目錄的沖突狀態,如果path是一個目錄並且想要對該目錄下的所有子目錄都生效,是要使用 -R 參數

20. svn diff -rm:n

# m 版本號
# n 版本號
功能:查看兩次版本之間的具體差異,生成patch

21. patch -p0 < ***.patch

# ***.patch patch的文件名
功能:將某個patch打入到svn

22. svn merge -r newest:target

# newest 最新的版本號
# target 目標版本號
功能:將代碼恢復到target的版本,並記錄修改,當再次svn ci的時候,相當於revert,刪除了newest與target之間的提交

23. svn export -r version original_file target_file

# version 指定的版本號
# original_file 指定的文件
# target_file 指定的目標路徑
功能:導出指定文件的指定版本到指定路徑

24. svn revert —depth infinity path

#path 要恢復的目錄
功能:恢復本地指定的目錄或文件的修改


免責聲明!

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



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