總結(jié)SVN常用操作指令

1、檢出

svn co http://路徑(目錄或文件的全路徑) [本地目錄全路徑]

--username 用戶名 --password 密碼svn co svn://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名 --password 密碼

svn checkout http://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名

svn checkout svn://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名

注:如果不帶--password 參數(shù)傳輸密碼的話,會(huì)提示輸入密碼,建議不要用明文的--password 選項(xiàng)。

其中 username 與 password前是兩個(gè)短線,不是一個(gè)。

不指定本地目錄全路徑,則檢出到當(dāng)前目錄下。

例子:

svn co svn://localhost/測(cè)試工具 /home/testtools --username wzhnsc

svn co http://localhost/test/testapp --username wzhnsc

svn checkout svn://localhost/測(cè)試工具 /home/testtools --username wzhnsc

svn checkouthttp://localhost/test/testapp --username wzhnsc

2、導(dǎo)出

(導(dǎo)出一個(gè)干凈的不帶.svn文件夾的目錄樹(shù))

svn export [-r 版本號(hào)] http://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名

svn export [-r 版本號(hào)] svn://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名

svn export 本地檢出的(即帶有.svn文件夾的)目錄全路徑 要導(dǎo)出的本地目錄全路徑

注:第一種從版本庫(kù)導(dǎo)出干凈工作目錄樹(shù)的形式是指定URL,

如果指定了修訂版本號(hào),會(huì)導(dǎo)出相應(yīng)的版本,

如果沒(méi)有指定修訂版本,則會(huì)導(dǎo)出最新的,導(dǎo)出到指定位置。

如果省略 本地目錄全路徑,URL的最后一部分會(huì)作為本地目錄的名字。

第二種形式是指定 本地檢出的目錄全路徑 到 要導(dǎo)出的本地目錄全路徑,所有的本地修改將會(huì)保留,

但是不在版本控制下(即沒(méi)提交的新文件,因?yàn)?svn文件夾里沒(méi)有與之相關(guān)的信息記錄)的文件不會(huì)拷貝。

例子:

svn export svn://localhost/測(cè)試工具 /home/testtools --username wzhnsc

svn export svn://localhost/test/testapp --username wzhnsc

svn export /home/testapp /home/testtools

3、添加新文件

svn add 文件名

注:告訴SVN服務(wù)器要添加文件了,還要用svn commint -m真實(shí)的上傳上去!

例子:

svn add test.php <- 添加test.php

svn commit -m “添加我的測(cè)試用test.php“ test.php

svn add *.php <- 添加當(dāng)前目錄下所有的php文件

svn commit -m “添加我的測(cè)試用全部php文件“ *.php

4、提交

svn commit -m “提交備注信息文本“ [-N] [--no-unlock] 文件名

svn ci -m “提交備注信息文本“ [-N] [--no-unlock] 文件名

必須帶上-m參數(shù),參數(shù)可以為空,但是必須寫(xiě)上-m

例子:

svn commit -m “提交當(dāng)前目錄下的全部在版本控制下的文件“ * <- 注意這個(gè)*表示全部文件

svn commit -m “提交我的測(cè)試用test.php“ test.php

svn commit -m “提交我的測(cè)試用test.php“ -N --no-unlock test.php <- 保持鎖就用–no-unlock開(kāi)關(guān)

svn ci -m “提交當(dāng)前目錄下的全部在版本控制下的文件“ * <- 注意這個(gè)*表示全部文件

svn ci -m “提交我的測(cè)試用test.php“ test.php

svn ci -m “提交我的測(cè)試用test.php“ -N --no-unlock test.php <- 保持鎖就用–no-unlock開(kāi)關(guān)

5、更新文件

svn update

svn update -r 修正版本 文件名

svn update 文件名

例子:

svn update <- 后面沒(méi)有目錄,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本

svn update -r 200 test.cpp <- 將版本庫(kù)中的文件 test.cpp 還原到修正版本(revision)200

svn update test.php <- 更新與版本庫(kù)同步。

提交的時(shí)候提示過(guò)期沖突,需要先 update 修改文件,

然后清除svn resolved,最后再提交commit。

6、刪除文件

svn delete svn://路徑(目錄或文件的全路徑) -m “刪除備注信息文本”

推薦如下操作:

svn delete 文件名

svn ci -m “刪除備注信息文本”

例子:

svn delete svn://localhost/testapp/test.php -m “刪除測(cè)試文件test.php”

推薦如下操作:

svn delete test.php

svn ci -m “刪除測(cè)試文件test.php”

7、加鎖/解鎖

svn lock -m “加鎖備注信息文本“ [--force] 文件名

svn unlock 文件名

例子:

svn lock -m “鎖信測(cè)試用test.php文件“ test.php

svn unlock test.php

8、比較差異

svn diff 文件名

svn diff -r 修正版本號(hào)m:修正版本號(hào)n 文件名

例子:

svn diff test.php<- 將修改的文件與基礎(chǔ)版本比較

svn diff -r 200:201 test.php<- 對(duì) 修正版本號(hào)200 和 修正版本號(hào)201 比較差異

9、查看文件或者目錄狀態(tài)

svn st 目錄路徑/名

svn status 目錄路徑/名<- 目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示

【?:不在svn的控制中; M:內(nèi)容被修改;C:發(fā)生沖突;

A:預(yù)定加入到版本庫(kù);K:被鎖定】

svn -v 目錄路徑/名

svn status -v 目錄路徑/名<- 顯示文件和子目錄狀態(tài)

【第一列保持相同,第二列顯示工作版本號(hào),

第三和第四列顯示最后一次修改的版本號(hào)和修改人】

注:svn status、svn diff和 svn revert這三條命令在沒(méi)有網(wǎng)絡(luò)的情況下也可以執(zhí)行的,

原因是svn在本地的.svn中保留了本地版本的原始拷貝。

10、查看日志

svn log 文件名

例子:

svn log test.php<- 顯示這個(gè)文件的所有修改記錄,及其版本號(hào)的變化

11、查看文件詳細(xì)信息

svn info 文件名

例子:

svn info test.php

12、SVN 幫助

svn help <- 全部功能選項(xiàng)

svn help ci <- 具體功能的說(shuō)明

13、查看版本庫(kù)下的文件和目錄列表

svn list svn://路徑(目錄或文件的全路徑)

svn ls svn://路徑(目錄或文件的全路徑)

例子:

svn list svn://localhost/test

svn ls svn://localhost/test <- 顯示svn://localhost/test目錄下的所有屬于版本庫(kù)的文件和目錄

14、創(chuàng)建納入版本控制下的新目錄

svn mkdir 目錄名

svn mkdir -m "新增目錄備注文本" http://目錄全路徑

例子:

svn mkdir newdir

svn mkdir -m "Making a new dir." svn://localhost/test/newdir

注:添加完子目錄后,一定要回到根目錄更新一下,不然在該目錄下提交文件會(huì)提示“提交失敗”

svn update

注:如果手工在checkout出來(lái)的目錄里創(chuàng)建了一個(gè)新文件夾newsubdir,

再用svn mkdir newsubdir命令后,SVN會(huì)提示:

svn: 嘗試用 “svn add”或 “svn add --non-recursive”代替?

svn: 無(wú)法創(chuàng)建目錄“hello”: 文件已經(jīng)存在

此時(shí),用如下命令解決:

svn add --non-recursive newsubdir

在進(jìn)入這個(gè)newsubdir文件夾,用ls -a查看它下面的全部目錄與文件,會(huì)發(fā)現(xiàn)多了:.svn目錄

再用 svn mkdir -m "添hello功能模塊文件" svn://localhost/test/newdir/newsubdir 命令,

SVN提示:

svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',

path '/newdir/newsubdir '

15、恢復(fù)本地修改

svn revert [--recursive] 文件名

注意: 本子命令不會(huì)存取網(wǎng)絡(luò),并且會(huì)解除沖突的狀況。但是它不會(huì)恢復(fù)被刪除的目錄。

例子:

svn revert foo.c <- 丟棄對(duì)一個(gè)文件的修改

svn revert --recursive . <-恢復(fù)一整個(gè)目錄的文件,. 為當(dāng)前目錄

16、把工作拷貝更新到別的URL

svn switch http://目錄全路徑 本地目錄全路徑

例子:

svn switch http://localhost/test/456 . <- (原為123的分支)當(dāng)前所在目錄分支到localhost/test/456

17、解決沖突

svn resolved [本地目錄全路徑]

例子:

$ svn update

C foo.c

Updated to revision 31.

如果你在更新時(shí)得到?jīng)_突,你的工作拷貝會(huì)產(chǎn)生三個(gè)新的文件:

$ ls

foo.c

foo.c.mine

foo.c.r30

foo.c.r31

當(dāng)你解決了foo.c的沖突,并且準(zhǔn)備提交,運(yùn)行svn resolved讓你的工作拷貝知道你已經(jīng)完成了所有事情。

你可以僅僅刪除沖突的文件并且提交,但是svn resolved除了刪除沖突文件,還修正了一些記錄在工作拷貝管理區(qū)域的記錄數(shù)據(jù),所以我們推薦你使用這個(gè)命令。

18、不checkout而查看輸出特定文件或URL的內(nèi)容

svn cat http://文件全路徑

例子:

svn cat http://localhost/test/readme.txt

19、新建一個(gè)分支copy

svn copy branchA branchB -m "make B branch" // 從branchA拷貝出一個(gè)新分支branchB

20、合并內(nèi)容到分支merge

svn merge branchA branchB // 把對(duì)branchA的修改合并到分支branchB

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、檢出 svn co http://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username 用戶名 ...
    石丘閱讀 1,644評(píng)論 0 15
  • 檢出 svn checkout http://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username用...
    Adam_Nan閱讀 1,124評(píng)論 0 0
  • 命令的使用 1、檢出 svn cohttp://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username...
    小李龍彪閱讀 4,531評(píng)論 0 9
  • //聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄 1、檢出svn co http://路徑(目錄或文...
    石虎132閱讀 1,887評(píng)論 0 15
  • DevOps和敏捷全棧開(kāi)發(fā) DevOps的介紹2.DevOps的敏捷開(kāi)發(fā)3.敏捷團(tuán)隊(duì)中DevOps的實(shí)踐過(guò)程4.D...
    燕京博士閱讀 1,299評(píng)論 0 1

友情鏈接更多精彩內(nèi)容