.使用 SVN 終端命令 (個人開發(fā))
1.SVN 幫助
svn help 查看全部功能選項(xiàng)
2.初始化項(xiàng)目
例 svn help import 查看怎么導(dǎo)入 輸出 import [PATH] URL
[PATH]本地路徑 URL 服務(wù)器地址
//本地初始化一個項(xiàng)目
//把一個工程導(dǎo)入服務(wù)器
svn import 本地路徑 服務(wù)器地址 -m
//-m 表示上傳文件的描述
3.//把服務(wù)器的文件夾下載到本地
//本地建一個文件夾 cd 文件夾 進(jìn)去文件夾的路徑,
svn checkout 服務(wù)器地址 或 svn checkout URL[@REV]... [PATH]
4.查看修改的文件
首先cd 進(jìn)入本地文件夾
svn status //查看被修改的文件
5.提交文件
svn commit -m
//例 svn commit -m "abc"
6.添加文件 svn add 需要添加的文件
//例 svn add cha.h cha.m
7.刪除文件 svn remove 需要刪除的文件
//例 svn remove cha.h cha.m
8.svn log 查看日志
9.更新文件
svn update //后面沒有目錄讯柔,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本
svn update -r 修正版本 文件名
svn update 文件名
10秋冰、查看文件詳細(xì)信息
svn info path
11恢復(fù)本地修改
svn revert [--recursive] 文件名
注意: 本子命令不會存取網(wǎng)絡(luò),并且會解除沖突的狀況辟癌。但是它不會恢復(fù)被刪除的目錄氏身。
例子:
svn revert foo.c <- 丟棄對一個文件的修改
svn revert --recursive . <-恢復(fù)一整個目錄的文件巍棱,. 為當(dāng)前目錄
12、新建一個分支copy
svn copy branchA branchB -m "make B branch" // 從branchA拷貝出一個新分支branchB
13蛋欣、合并內(nèi)容到分支merge
svn merge branchA branchB // 把對branchA的修改合并到分支branchB
使用 svn 多人開發(fā)
1.首先本地新建文件夾
cd 進(jìn)入文件夾
2.把服務(wù)器的文件夾下載到本地
svn checkout 服務(wù)器地址 --username=用戶名 --password=密碼
3.提交文件需要加上--username=用戶名
svn commit -m --username=用戶名
//例 svn commit -m "abc" --username=用戶名
4.其他命令一樣
5.解決沖突
.我提交一個修改的文件到服務(wù)器,另一個人同時也修改了這個文件,代碼沒有更新,直接提交,這時因?yàn)榘姹静灰粯?/p>
報錯 超時
.另一個人需要先更新代碼,但是由于兩個人同時修改一個文件會產(chǎn)生沖突,這時會有三種情況
Select: (P) postpone, (df) diff-full, (e) edit //延遲處理
(mc) mine-conflict, (tc) theirs-conflict //保留我的 , 保留另外一個人的
(s)show all options://在這里選這結(jié)果
//選擇延遲處理本地會出現(xiàn)三個文件
選擇同時修改的文件刪除<<<<<<< 我的代碼 >>>>>>>>>服務(wù)器的代碼 保留兩份代碼,兩份代碼已經(jīng)合在一起
執(zhí)行 svn resolved [本地目錄全路徑]
svn commit -m"解決沖突" --username=用戶名
版本回退
1.恢復(fù)本地修改
svn revert [--recursive] 文件名
2.服務(wù)器代碼版本回退
svn merge main.m -r 3:2
//main 要恢復(fù)的文件 3:2 當(dāng)前最新的版本恢復(fù)到2版本
3.svn update -r 修正版本 文件名 //這只能修改本地文件版本號,
//要想把服務(wù)器文件版本號改變,這是可以提交,此時會產(chǎn)生沖突,利用沖突來修改服務(wù)器的代碼
svn st 顯示的文件狀態(tài)
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 沖突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義創(chuàng)建的版本目錄
'?' 文件沒有被添加到本地版本庫內(nèi)
'!' 文件丟失或者不完整(不是通過svn命令刪除的文件)
'~' 受控文件被其他文件阻隔
命令 | 功能 | 使用格式 |
---|---|---|
checkout | 檢出 | svn co URL |
up | 更新到當(dāng)前URL的末端 | svn up |
switch | 更新到某一tag/branch | svn switch (tag/分支)URL |
add | 增加 | svn add 文件名 |
rm | 刪除文件 | svn rm 文件名 |
刪除目錄 | svn rm 目錄名 | |
diff | 與base版本(最后檢出或者更新的版本)對比 | svn diff |
與版本庫中最新的版本對比 | svn diff -r head | |
當(dāng)前工作副本航徙,兩個版本之間對比 | svn diff -r reversion1:reversion2 | |
版本庫中任意兩個tag做對比 | svn diff (tag1)URL (tag2)URL | |
ci | 提交 | svn ci -m"commit log" |
log | 查看當(dāng)前工作副本 | svn log |