必學(xué)命令 help 子命令
cd path : 將當(dāng)前路徑切換到path路徑
pwd :查看當(dāng)前所在路徑
ls (-a / -l / -G) : 查看當(dāng)前文件夾下所有文件及文件夾
touch filename1 filename2 : 創(chuàng)建一個(gè)或者多個(gè)文件
rm filename : 刪除文件
open filename :打開(kāi)文件
cat filename :查看文件內(nèi)容
more filename :分頁(yè)查看文件內(nèi)容
mkdir 文件夾名稱 :創(chuàng)建一個(gè)文件夾
mv oldFilePath newFilePath :移動(dòng)文件(可借助此命令給文件重命名)
補(bǔ)充
. 代表當(dāng)前文件路徑
.. 代表上級(jí)目錄
以 .開(kāi)頭的文件,代表隱藏文件
顯示隱藏文件
defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
不顯示隱藏文件
defaults write com.apple.finder AppleShowAllFiles No && killall Finder
提示
- 如果要使用當(dāng)前目錄中的文件名鞠眉,輸入到一半時(shí)草巡,按TAB鍵能夠補(bǔ)全
個(gè)人開(kāi)發(fā)操作
從服務(wù)器下載一份完整代碼到本地開(kāi)始開(kāi)發(fā)
svn checktout URL [path] —-username=用戶名 —-password=密碼
-
修改文件提交
- svn commit -m “注釋”
-
新建文件提交
- svn add filename (將文件添加到本地版本控制進(jìn)行管理
- svn commit -m “注釋”
- 提交多有 svn add *
-
刪除文件提交
一定不要直接手動(dòng)刪除文件
- svn remove filename / svn delete filename 先從本地代碼倉(cāng)庫(kù)管理中移除,然后刪除
- svn commit -m “注釋” (提交,讓服務(wù)器也刪除對(duì)應(yīng)文件)
任何向服務(wù)器提交的操作,都要加注釋 添加 -m參數(shù)
常用命令補(bǔ)充
- svn status
查看當(dāng)前工作空間內(nèi), 所有 有變化的文件 的狀態(tài)
如果執(zhí)行此命令什么都沒(méi)輸出, 代表本地沒(méi)有東西要提交 - svn log
查看當(dāng)前版本的操作日志(什么人, 什么時(shí)間, 做了什么操作)
常見(jiàn)狀態(tài)
' ' 沒(méi)有修改
'A' 被添加到本地代碼倉(cāng)庫(kù)
'C' 沖突
'D' 被刪除(通過(guò)svn命令刪除的文件)
'I' 被忽略
'M' 被修改
'R' 被替換
‘G’ 被合并
‘U’ 已經(jīng)更新
‘E’ 已經(jīng)存在
'X' 外部定義創(chuàng)建的版本目錄
'?' 文件沒(méi)有被添加到本地版本庫(kù)內(nèi)
'!' 文件丟失或者不完整(不是通過(guò)svn命令刪除的文件)
'' 受控文件被其他文件阻隔
團(tuán)隊(duì)開(kāi)發(fā)操作
- 添加文件同步
- 修改文件同步
- 刪除文件同步
- 超時(shí)和沖突解決演練
多人開(kāi)發(fā)中最常遇到的問(wèn)題: 超時(shí)和沖突
超時(shí)
超時(shí): 當(dāng)本地文件版本小于服務(wù)器文件版本時(shí), 如果要提交本地文件,就會(huì)報(bào) out of date 超時(shí)錯(cuò)誤
-
原因: SVN通過(guò)版本號(hào)管理每一個(gè)文件,如果一個(gè)文件被修改并提交到服務(wù)器,那么服務(wù)器上的對(duì)應(yīng)文件版本號(hào)就會(huì)加1, 如果你的版本號(hào)小于服務(wù)器版本號(hào),就說(shuō)明,肯定有別人在后來(lái)又修改了那個(gè)文件
- 大版本提交或合并到小版本,會(huì)把小版本內(nèi)容覆蓋
- 大小版本不能提交到大版本
超時(shí)解決方案: 針對(duì)于超時(shí)問(wèn)題,對(duì)應(yīng)的解決方案,就是先從服務(wù)器更新下最新版本, 保證本地版本號(hào)與服務(wù)器版本號(hào)一致,這是文件可以提交的前提
沖突: 為了解決超時(shí)問(wèn)題,只能更新.而在更新過(guò)程中,如果幾個(gè)人修改了同一文件的同一行代碼,此時(shí)就會(huì)產(chǎn)生沖突
原因: 版本控制器不會(huì)那么智能, 去決定應(yīng)該使用誰(shuí)的代碼作為最終代碼,只能將選擇權(quán)拋給用戶,讓用戶解決
(df) diff-full, (e) edit, (s) show all options:
(p) postpone, // 延遲處理(待會(huì)我自己處理)
(mc) mine-conflict, // 使用我的(本地的)
(tc) theirs-conflict, // 使用服務(wù)器
<<<<<<< .mine
本地代碼
=======
服務(wù)器代碼
svn resolved 文件名
svn commit -m "解決沖突"
SVN終端-版本回退
- 做錯(cuò)了,想反悔到前面某個(gè)狀態(tài)
- 修改了,但未提交的情況反悔
方案1: (大力推薦)
svn revert (作用:返回到上次提交后的狀態(tài))
方案2: (不推薦)
刪除整個(gè)項(xiàng)目,重新checkout
- 修改了,并且提交了的情況反悔
方案1: 大力推薦
svn update (將本地代碼更新到與服務(wù)器相同的版本)
svn merge 文件名 -r 版本1:版本2
(作用:把版本1 -> 版本2 的 diff 作用在當(dāng)前版本)
svn commit -m “本地和服務(wù)器都回退到某一指定版本”
方案2:
svn update -r 指定版本號(hào)(此時(shí)本地代碼已經(jīng)變化,但是服務(wù)器沒(méi)有改變)
修改部分文件
svn update (此時(shí)會(huì)產(chǎn)生沖突, 選擇使用自己的代碼即可)
再次提交代碼
方案3:(垃圾,最不推薦)
手動(dòng)保存需要回退的文件內(nèi)容
刪除文件,提交到服務(wù)器
重新添加文件,上傳到服務(wù)器
Cornerstone基本使用
Xcode管理SVN
演示靜態(tài)庫(kù)的提交
- .a靜態(tài)庫(kù)文件,必須使用命令行手動(dòng)添加到版本控制器中,然后提交
怎樣忽略文件
-
過(guò)濾不需要上傳的文件, 忽略文件(xcuserdata文件夾)
文件打開(kāi)狀態(tài)
斷點(diǎn)信息
文件夾關(guān)閉打開(kāi)狀態(tài)
注意:projct setting文件不要忽略
- 存放一些文件順序和文件夾結(jié)構(gòu),文件引用等信息
SVN目錄規(guī)范
trunk :主干百宇,當(dāng)前開(kāi)發(fā)項(xiàng)目的主目錄
我們之前更新代碼庆锦,提交代碼都是在這個(gè)文件夾進(jìn)行操作brannches:分支目錄辫继,添加非主線功能時(shí)使用硼婿,開(kāi)發(fā)測(cè)試之后锌半,可以合并到主干項(xiàng)目中。
修復(fù)Bug寇漫,研發(fā)不確定的新功能都在這里做-
tags:標(biāo)記目錄刊殉,通常作為重大版本的備份;
如果有發(fā)布版本出現(xiàn)Bug猪腕,可以快速的找到對(duì)應(yīng)版本的項(xiàng)目備份冗澈,然后開(kāi)一個(gè)分支,進(jìn)行Bug修復(fù)陋葡,用于與主干區(qū)分- 畫(huà)圖說(shuō)明三個(gè)目錄使用流程
- 演示版本備份流程
- 演示已發(fā)布版本bug解決流程