您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linux系統svn常用命令是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
,是一個開放源代碼的版本控制系統,相較于RCS、CVS,它采用了分支管理系統,它的設計目標就是取代CVS。
path 是服務器上的目錄。
svn checkout path 例如:svn checkout svn://192.168.1.1/pro/domain 簡寫:svn co
這樣將把你的工作拷貝放到subv而不是和前面那樣放到trunk
file是某個文件或者某個目錄,如果添加所有的文件則用點“.”表示。
svn add file 例如:svn add test.php svn add *.php(添加當前目錄下所有的php文件) svn add . (表示添加所有文件)
提交文件到服務器。
svn commit -m “LogMessage“ [-N] [--no-unlock] path(如果選擇了保持鎖,就使用–no-unlock開關) 例如:svn commit -m “add test file for my test” test.php 簡寫:svn ci
一般步驟:
step-1:svn update
step-2:svn add file、svn delete file
step-3:svn commit -m “提交文件到遠程服務器”
加鎖/解鎖命令。
svn lock -m “LockMessage” [--force] path 例如:svn lock -m “lock test file” test.php svn unlock path
更新版本命令。
svn update -r m path 例如: 1、 svn update 后面沒有目錄,默認更新當前目錄及子目錄的所有文件到最新版本。 2、 svn update -r 200 test.php (將版本庫中的文件test.php還原到版本200) 簡寫:svn up
update命令還可以進行文件恢復。 (1)不小心寫錯了很多東西,想撤銷所寫的東西(已經把修改提交到服務器)svn update -r 版本號 (2)不小心刪錯了文件,想把文件恢復回來(已經把刪除提交到服務器)?svn update -r 版本號
svn status -v path svn status path 簡寫:svn st
顯示文件和子目錄的狀態。 第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最后一次修改的版本號和修改人。 注:svn status、svn diff和 svn revert這三條命令在沒有網絡的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
文件狀態描述
A 被添加到本地代碼倉庫
‘ ‘ 沒有修改
C 沖突
D 被刪除
I 被忽略
M 被修改
R 被替換
X 外部定義創建的版本目錄
? 文件沒有被添加到本地版本庫內
!文件丟失或者不完整(不是通過svn命令刪除的文件)
~ 受控文件被其他文件阻隔
刪除文件。
svn delete path -m “delete test file” 例如: 1、刪除遠程服務器文件 svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file” 2、刪除本地文件,然后提交 svn delete test.php, 然后再svn ci -m “delete test file”,推薦使用這種 簡寫:svn (del, remove, rm)
查看日志。
svn log path 例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化。
如果在工程的根目錄使用該命令可能會列出非常多的日志內容,因此為了查找方便,我們通常會使用一些附加參數來配合svn log命令的使用。
svn log -r {2018-07-03}:{2018-07-09}
顯示從r199687到r199385范圍的所有帶jaspersong字符串的log (grep下面介紹)
svn log -r r103546:r104414 | grep -A 2 jaspersong
這里說明一下grep -A 2 "jasper"|中A后面數字的差別,不同的數字表示顯示的log版本信息不同的行數。
此命名用得比較多。
svn log -r r196674 -v
svn log -v --stop-on-copy $URL
查看文件詳細信息。
例如:svn info test.php
默認將修改的文件與基礎版本比較。
例如:svn diff test.php svn diff -r m:n path(對版本m和版本n比較差異) 例如:svn diff -r 200:201 test.php 簡寫:svn di
Linux命令行下將兩個版本之間的差異合并到當前文件。
svn merge -r m:n path 例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當前文件,但是一般都會產生沖突,需要處理一下。
Linux命令行下SVN 幫助。
svn help ci
顯示path目錄下的所有屬于版本庫的文件和目錄。
簡寫:svn ls
下面兩種情況都可以用revert命令恢復。
(1)不小心寫錯了很多東西,想撤銷所寫的東西(還未把修改提交到服務器)
(2)不小心刪錯了文件,想把文件恢復回來(還未把刪除提交到服務器) 注意: 本子命令不會存取網絡,并且會解除沖突的狀況。但是它不會恢復被刪除的目錄。【還不沒實踐過,不知道不會恢復本地刪除的目錄是什么意思】
移除工作副本的目錄或文件的“沖突”狀態。
用法: svn resolved path
注意: 【本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的相關文件,然后讓 path 可以再次提交。】
創建分支參考資料: https://www.cnblogs.com/huang0925/p/3254243.html https://blog.csdn.net/yangzhongxuan/article/details/7519948 https://blog.csdn.net/min954584739/article/details/78114273
從主干上創建分支。
svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001
獲得分支
svn co http://svn_server/xxx_repository/branches/br_feature001
主干合并到分支
cd br_feature001 svn merge http://svn_server/xxx_repository/trunk
分支合并到主干 一旦分支上的開發結束,分支上的代碼需要合并到主干。SVN中執行該操作需要在trunk的工作目錄下進行。命令如下:
cd trunk svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001
創建分支
svn copy http://example.com/repos/project/trunk http://example.com/repos/project/branches/beta
合并分支到主干 在分支上,獲取剛開始的版本號
svn log --stop-on-copy http://example.com/repos/project/branches/search_collect_1108
如得到版本號為:12461
在分支上,獲取最新的版本號
svn up
如得到版本號為:12767
切換到主干,然后執行下面命令(后面的路徑為,分支的路徑。)
svn merge -r 12461:12767 http://example.com/repos/project/branches/search_collect_1108
查找到分支版本 方法一:進入分支目錄
cd branch svn log --stop-on-copy
最后一個r11340就是創建分支時的reversion
方法二: 進入主干目錄
cd trunk svn -q --stop-on-copy 分支URL # 這條命令會查詢出自創建分支以后分支上的所有修改,最下面的那個版本號就是我們要找的版本號. 示例:svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
合并到主干 命令:svn -r 分支版本號:HEAD 分支的URL 解釋:HEAD為當前主干上的最新版本
示例: cd trunk svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24
解決沖突: 使用svn st | grep ^C 查找合并時的沖突文件,手工解決沖突 使用svn resolved filename 告知svn沖突已解決 使用svn commit -m “” 提示合并后的版本。
上述內容就是Linux系統svn常用命令是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。