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。
用法:
1、switch URL [PATH]
2、switch –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>