SVN教程

1、Svn介紹

SVN全名Subversion,即版本控制系統。SVN與CVS一樣,是一個跨平臺的軟件,支持大多數常見的操作系統。作爲一個開源的版本控制系統,Subversion管理着隨時間改變的數據。這些數據放置在一箇中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽文件的變動歷史。Subversion是一個通用的系統,可用來管理任何類型的文件,其中包括了程序源碼。

2、Svn安裝

安裝教程:Linux下安裝SVN服務端

3、Svn使用

3.1、將文件checkout到本地目錄

svn checkout svn_path local_path
//例如:
svn checkout svn://192.168.1.131/45dian/brand
//推薦添加本地目錄:
svn checkout svn://192.168.1.131/45dian/brand ./brand/
//簡寫 
svn co
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.2、往版本庫添加新的文件

svn add file
//例如(添加test.php): 
svn add test.php 
//添加當前目錄下所有的php文件
svn add *.php
//添加user目錄(同時將目錄下所有內容(遞歸)添加)
svn add user
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

添加完成以後需要提交到版本庫。

3.3、將改動的文件提交到版本庫

svn commit -m '註釋內容' [-N] [--no-unlock] PATH
//簡寫 
svn ci
//提交文件夾及目錄
svn ci -m '添加新文件' test.php
svn ci -m '添加新目錄(遞歸)' user
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.4、加鎖/解鎖

svn lock -m '加鎖註釋內容' [--force] PATH
//例如:
svn lock -m "鎖定文件" test.php
//解鎖內容
svn unlock PATH 
  • 1
  • 2
  • 3
  • 4
  • 5

3.5、更新版本

在修改文件之前,一定要先更新版本庫,再修改文件,然後提交。
如果提交的時候提示過期,是因爲衝突,需要先update,修改文件,然後清楚 svn resolved ,最後再提交commit。

svn update -r m PATH
//更新到最新版本:
svn update
//將文件還原到歷史版本200
svn -r 200 test.php
//把test.php 更新到最新版本
svn update test.php
//簡寫
svn up
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.6、查看文件或者目錄狀態

svn status PATH
//顯示文件及子目錄的狀態,正常不顯示
// ? 不在svn的控制中
// M 內容被修改
// C 發生衝突
// A 預訂加入到版本庫
// K 被鎖定
svn status -v PATH
//例如:
svn status
svn status -v
//簡寫
svn st
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.7、刪除文件

svn delete PATH -m '註釋內容'
//例如:
svn delete svn://192.168.1.133/45dian/brand/test.php -m '刪除svn中文件'
//或者(推薦使用)
svn delete test.php
svn ci -m '提交刪除的文件'
//簡寫
svn (del,remove,rm)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.8、查看日誌

svn log PATH
//例如:
//顯示這個文件的修改記錄,及版本號的變化
svn log
svn log test.php
  • 1
  • 2
  • 3
  • 4
  • 5

3.9、查看文件詳細信息

svn info PATH
//例如:
//顯示當前目錄的信息
svn info
//顯示test.php文件信息
svn info test.php
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.10、比較文件及目錄差異

svn diff PATH
//將修改的文件與倉庫中最新版本比較
svn diff test.php

//版本之間對比
svn diff -r m:n PATH
//版本m與版本n比較差異
svn diff -r 200:201 test.php
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.11、將兩個版本之間的差異合併到當前文件

//將m版本和n版本合併到當前文件
svn merge -r m:n path
//例如
svn merge -r 200:201 test.php
//但是一般都會產生衝突,需要處理一下
  • 1
  • 2
  • 3
  • 4
  • 5

3.12、SVN 幫助

svn help
svn help ci
  • 1
  • 2

3.13、在版本倉庫中添加文件夾

//在svn版本倉庫中添加文件夾
svn mkdir PATH
//等價於
mkdir work
svn add work -m '添加文件夾'
  • 1
  • 2
  • 3
  • 4
  • 5

3.14、代碼庫URL變更

svn switch (sw): 更新工作副本至不同的URL。
用法: 
    1switch URL [PATH]
    2switch –relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一個新的URL,其行爲跟“svn update”很像,也會將
     服務器上文件與本地文件合併。這是將工作副本對應到同一倉庫中某個分支或者標記的
     方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動 
    (比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用
    這個命令更新工作副本與倉庫的對應關係。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.15、解決衝突

svn resolved: 移除工作副本的目錄或文件的“衝突”狀態。
用法: resolved PATH…
注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的
相關文件,然後讓 PATH 可以再次提交。
  • 1
  • 2
  • 3
  • 4
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章