SVN
SVN使用
-
基本操作
- svn checkout:把項(xiàng)目源碼下載到本地,只需要做一次
- svn update:將本地的源碼更新至服務(wù)器的最新版本
- svn commit:將本地的源碼更新內(nèi)容提交到服務(wù)器
- 提醒:每天下班前commit可運(yùn)行版本,上班前update前一天所有代碼
-
SVN使用環(huán)境
- 要想利用SVN管理源代碼,必須得有2套環(huán)境
- 服務(wù)器
- 用于存儲(chǔ)客戶端上傳的源代碼
- 可以在Windows上安裝Visual SVN Server
- 大部分情況下,公司的開(kāi)發(fā)人員不必親自搭建SVN服務(wù)器
- 客戶端
- 上傳本地的源代碼到服務(wù)器,或者更新服務(wù)器的代碼到本地,保持同步
- 可以在Mac上使用命令行、Versions、Cornerstone、Xcode
- 開(kāi)發(fā)人員就屬于客戶端這個(gè)角色
- 服務(wù)器
- 要想利用SVN管理源代碼,必須得有2套環(huán)境
Visual SVN Server軟件
-
服務(wù)器端安裝配置
- 在電腦上安裝虛擬機(jī)
- 安裝Visual SVN Server
- Standard Edition
- 倉(cāng)庫(kù)地址、安裝位置
- ServerPort 端口號(hào):80
- start Visual SVN
- 面板介紹
- Repositories:創(chuàng)建倉(cāng)庫(kù)
- users
- groups
- 如何創(chuàng)建倉(cāng)庫(kù)
- 創(chuàng)建一個(gè)空的倉(cāng)庫(kù)
- 設(shè)置權(quán)限
- Properties
- add - 把創(chuàng)建的manager添加進(jìn)去
- read/write
- Properties
- 紅色的星號(hào)表示可以被訪問(wèn)
- copyurl
- 在虛擬機(jī)里面復(fù)制copy的url打開(kāi)
- 鏈接倉(cāng)庫(kù)
- 虛擬機(jī)理解成為遠(yuǎn)程服務(wù)器,本地的safari鏈接不上url
- 本地訪問(wèn)的時(shí)候,是計(jì)算機(jī)名稱(chēng)訪問(wèn)的
- 其他地方訪問(wèn)時(shí)通過(guò)ip地址
- 如何獲得ip地址(虛擬機(jī)里)
- cmd
- 輸入ipconfig
- 用ip地址把計(jì)算機(jī)的名稱(chēng)換掉
- 彈框輸入用戶名和密碼就可以連接上倉(cāng)庫(kù)了
- 創(chuàng)建文件Doc/Code
- 創(chuàng)建用戶(項(xiàng)目經(jīng)理要做的)
- name
- password
- confirmpassword
客戶端軟件使用
與xcode集成
項(xiàng)目經(jīng)理對(duì)項(xiàng)目進(jìn)行初始化操作
1.項(xiàng)目經(jīng)理先創(chuàng)建一個(gè)空的倉(cāng)庫(kù),創(chuàng)建用戶名(賬號(hào):manager密碼:manager),設(shè)置訪問(wèn)權(quán)限
-
2.項(xiàng)目經(jīng)理使用終端連接到SVN服務(wù)器,并且把倉(cāng)庫(kù)下載到本地
- 通過(guò)url連接上
- cd
- pwd看到當(dāng)前路徑
- 下載倉(cāng)庫(kù)到本地
$ svn checkout http://172.16.3.128/svn/Demo/ -- username = manager -- password = manager
- 路徑為倉(cāng)庫(kù)地址路徑
- 需要把計(jì)算機(jī)名稱(chēng)改為ip地址
- 后面要跟上用戶名和密碼
- Demo
- Code
- .svn隱藏文件就是svn版本庫(kù)
- 如何查看隱藏文件
- 顯示隱藏文件
- $ defaults write com.apple.finder AppleShowAllFiles YES&&killallFinder
- 不顯示隱藏文件
- $ defaults write com.apple.finder AppleShowAllFiles NO &&killallFinder
- 如何查看隱藏文件
-
3.項(xiàng)目經(jīng)理進(jìn)入到code路徑
- ls - la
- cd Code/
- pwd
4.項(xiàng)目經(jīng)理 創(chuàng)建空的文件 touch main.m
-
5.查看文件狀態(tài)
-
$ svn status
- 打印 ? main.m
- ?表示該文件沒(méi)有被svn管理
-
-
6.把main.m添加到SVN的版本庫(kù)
-
$ svn add
文件名(main.m) - 狀態(tài)變?yōu)锳 :A表示新添加了文件
-
-
7.把本地的修改(mian.m) 提交到遠(yuǎn)程的倉(cāng)庫(kù)
- $ svn commit - m"注釋" main.m
- m 表示message
注意:新創(chuàng)建的文件默認(rèn)不會(huì)被SVN管理,需要使用add指令來(lái)添加
-
8.項(xiàng)目經(jīng)理命令行刪除文件
- $ svn remove main.m
- D :代表delegate,表示該文件被刪除
-
9.項(xiàng)目經(jīng)理把本地的更改提交到遠(yuǎn)程的svn服務(wù)器
- $ svn commit - m "刪除了文件"文件名稱(chēng)(可以省略)
-
svn相關(guān)命令行的簡(jiǎn)寫(xiě)
- svn checkout == svn co
- svn status == svn st
- svn commit == svn ci
- svn update == svn up
- svn remove == svn rm
ruby升級(jí)
因?yàn)闇?zhǔn)備項(xiàng)目中使用bootstrap,在安裝bootstrap過(guò)程中提示需要Ruby的版本在1.9.2以上,而且目前使用的Ruby版本是Mac系統(tǒng)自帶的1.8.7.所以需要對(duì)Ruby進(jìn)行升級(jí)
-
安裝RVM
- RVM:Ruby version manager,ruby版本管理器,包括ruby的版本管理和gem庫(kù)管理
- curl- L get.rvm.io | bash - s stable
- 等待一段時(shí)間后就可以成功安裝好RVM
- $ source ~/.bashrc
- $ source ~/.bash_profile
- 測(cè)試是否安裝正常
- rvm - v
- 1.27.0說(shuō)明升級(jí)好了
-
用RVM升級(jí)Ruby
- 查看ruby版本
- ruby - v
- 列出所有版本
- rvm list known
- 安裝ruby2.3
- rvm install 2.3
- ruby有很多依賴(lài),會(huì)下載很多的包
- 再安裝cocoapods
- 查看ruby版本
-
svn如何查看版本信息
- cd
- 更新獲得最新的版本信息
- $ svn update
- 查看版本信息
- $ svn log
新同事加入開(kāi)發(fā)涉及操作
- 給新同事分配一個(gè)SVN賬號(hào) (賬號(hào):zs密碼:zs)
- 新同事需要連接到SVN的遠(yuǎn)程服務(wù)器,下載倉(cāng)庫(kù)到本地
- $ svn checkout http://172.16.3.168/svn/Demo/ -- username = zs -- password = zs
- 開(kāi)兩個(gè)終端
- 一個(gè)項(xiàng)目經(jīng)理manager
- 給zs創(chuàng)建/分配賬號(hào)
- 項(xiàng)目經(jīng)理更新獲得最新的倉(cāng)庫(kù)信息
- $ svn update |svn up
- 項(xiàng)目經(jīng)理創(chuàng)建一個(gè)人類(lèi)
- touch Person.h Person.m
- $ svn status
- $ svn commit - m "創(chuàng)建了人"
- 一個(gè)是新同事zs
cd
svn checkout http://172.16.3.168/svn/Demo/ -- username = zs -- password = zs
cd
ls - la
zs開(kāi)始開(kāi)發(fā),創(chuàng)建了一個(gè)??類(lèi)
$ touch Dog.h Dog.m
-
$ svn status
- ?? 沒(méi)有被svn管理呢
把新創(chuàng)建的文件,添加到svn的版本庫(kù)里面
- $ svn add Dog.h Dog.m$ svn add * 把當(dāng)前路徑下面所有沒(méi)有被SVN管理的文件都添加到svn的版本庫(kù)中
- warning :不用理會(huì)查看狀態(tài) svn status
把本地的修改提交到遠(yuǎn)程倉(cāng)庫(kù)
- $ svn commit - m "創(chuàng)建了??類(lèi)"Dog.h Dog.m
- Dog.h Dog.m可以省略不寫(xiě),省略表示把所有文件的更改都提交到遠(yuǎn)程倉(cāng)庫(kù)
- 一個(gè)項(xiàng)目經(jīng)理manager
SVN版本回退操作
- svn log 查看版本信息
- 版本回退:
- 回到上一個(gè)版本
- 版本回退涉及的兩種情況
- 修改了內(nèi)容,但是該修改還沒(méi)有提交到svn倉(cāng)庫(kù),需要回退到最新的版本(取消當(dāng)前修改)
- zs
- cat Dog.h
- echo "wangwang" >>Dog.h
- cat Dog.h
- svn status
- M:表示該文件被修改
- 提交更改到遠(yuǎn)程的服務(wù)器
- svn commit - m "修改了Dog.h文件"
- 繼續(xù)輸入信息
- echo "miaomiao" >> Dog.h
- 按鍵盤(pán)的上箭頭,就可以查看狀態(tài)
- 取消更改(不在Dog.h里面輸入miaomiao)
- svn revert Dog.h
- zs
- 修改了內(nèi)容,并且該修改已經(jīng)被提交到SVN倉(cāng)庫(kù),需要回退到上一個(gè)版本(取消修改)
- 修改了Dog.h文件
- 把修改的文件提交到SVN服務(wù)器
- $ svn commit - m "HelloDog" Dog.h
- 此時(shí)需要取消對(duì)Dog.h文件的修改(需要回退到上一個(gè)版本)
- 回退到特定的版本
- $ svn update - r(版本號(hào))
- $ svn update - r9
- 不能直接commit(提交),如果客戶端的版本號(hào),低于服務(wù)器端的版本號(hào),不能提交成功
- 回到最新版本 $ svn update
- 先更新回到最新的版本信息
- $ svn update
- 合并兩個(gè)版本的文件
- $ svn merge - r(當(dāng)前的版本號(hào)):r(要回退到的版本號(hào)) 文件名稱(chēng)
- $ svn merge - r9 : r8 Dog.h
- U:版本回退的操作
- 重新提交更改到SVN服務(wù)器
- $ svn commit - m "Dog類(lèi)回退到上一個(gè)版本" Dog.h
- 回退到特定的版本
- svn - log查看版本信息
- 修改了內(nèi)容,但是該修改還沒(méi)有提交到svn倉(cāng)庫(kù),需要回退到最新的版本(取消當(dāng)前修改)
多人開(kāi)發(fā)可能會(huì)出現(xiàn)的沖突
- 項(xiàng)目經(jīng)理修改了main.m文件,往里面添加了一行內(nèi)容(版本號(hào)10)
- $ echo "main 項(xiàng)目經(jīng)理" >>main.m
- 項(xiàng)目經(jīng)理把修改提交到服務(wù)器(版本號(hào)11)
- $ svn commit - m "修改了文件,提交到倉(cāng)庫(kù)" main.m
- 同一時(shí)間,zs也修改了main.m的同一位置(版本號(hào)10)
- $ echo "mian zs"
- 張三也提交修改到服務(wù)器,此時(shí)提示不能提交成功(報(bào)錯(cuò):版本已經(jīng)過(guò)期)
- $ svn commit - m "張三修改了文件,提交"main.m(報(bào)錯(cuò) outofdate)
- 產(chǎn)生沖突原因:兩個(gè)人修改了同一個(gè)文件的同一個(gè)位置
- 解決:張三應(yīng)該先更新,獲得最新的版本信息,一更新就會(huì)產(chǎn)生沖突
- $ svn update
- df 會(huì)列出哪里有沖突
- p 稍后處理
- mc 以我的為主
- tc 以服務(wù)器的為主,服務(wù)器端的內(nèi)容就會(huì)覆蓋本地的
- 解決沖突的具體方法詳解(掌握)
tc:表示用服務(wù)器的內(nèi)容來(lái)覆蓋掉本地的內(nèi)容,此時(shí)本地的倉(cāng)庫(kù)和服務(wù)器端的倉(cāng)庫(kù)是一樣的
-
mc:表示使用客戶端的內(nèi)容來(lái)覆蓋掉服務(wù)器端的內(nèi)容,并且本地的版本號(hào)會(huì)加1
- $ svn commit - m "我是zs" main.m
- 把更改提交到服務(wù)器,版本號(hào)+1,會(huì)把服務(wù)器端的內(nèi)容覆蓋掉
-
p:
- 表示延遲處理沖突,需要手動(dòng)解決沖突
- 向左向右和等號(hào)的提示,把不需要的刪掉,向左、等號(hào)、向右的箭頭必須要?jiǎng)h除,其余的可以隨便處理,一般情況下是都保留
- 通過(guò)命令行告訴svn沖突已經(jīng)被解決了
- $ svn resolved main.m
- 把修改提交到遠(yuǎn)程的倉(cāng)庫(kù)
- $ svn commit - m “解決了沖突”main.m
SVN圖形化界面工具簡(jiǎn)單說(shuō)明
-
圖形界面工具
- cornerstone
右鍵,新建空的倉(cāng)庫(kù)
右鍵,新建兩個(gè)文件夾Code/Doc
創(chuàng)建管理者
配置權(quán)限 add 設(shè)置為可讀可寫(xiě)
-
copyURL
- 把計(jì)算機(jī)的名稱(chēng)改為ip,運(yùn)行cmd-ipconfig
-
連接上遠(yuǎn)程倉(cāng)庫(kù)選中HTTP Server
- Protocol:HTTP
- Sever:ip地址
- Pepository path:路徑
- port:80
- Nickname:昵稱(chēng)可以隨便傳
- 設(shè)置賬號(hào)密碼
-
把遠(yuǎn)程倉(cāng)庫(kù)下載到本地
- 左上角的checkout
- Check out As :名稱(chēng)
- Where:放在哪個(gè)位置路徑下面
- When Complete:打開(kāi)/nothing
- Revision:倉(cāng)庫(kù)的版本號(hào)
- Format:git的版本號(hào),一定要選擇1.7
-
項(xiàng)目初始化配置
- 創(chuàng)建一個(gè)項(xiàng)目,把項(xiàng)目放到code里面,不要勾選create git
- ? :文件當(dāng)前并沒(méi)有被SVN管理,在這里是Xcode反應(yīng)遲鈍,不需要做add操作
- 步驟:
-
先連接上遠(yuǎn)程倉(cāng)庫(kù)
-
把遠(yuǎn)程倉(cāng)庫(kù)下載到本地
- 使用xcode創(chuàng)建一個(gè)新的項(xiàng)目(該項(xiàng)目中的所有的文件,默認(rèn)會(huì)被添加到當(dāng)前的svn版本庫(kù)中)
- 把本地的更改,提交到遠(yuǎn)程的服務(wù)器倉(cāng)庫(kù)
- 點(diǎn)擊commit指令之后會(huì)彈出一個(gè)框(該軟件識(shí)別出了幾個(gè)文件,這幾個(gè)文件通常需要被忽略的),點(diǎn)擊ignore,輸入注釋?zhuān)缓簏c(diǎn)擊commit changes
-
- 設(shè)置倉(cāng)庫(kù)的忽略文件
- 還有一些文件是需要忽略處理的
- 記錄斷點(diǎn)信息
- 導(dǎo)航菜單打開(kāi)狀態(tài)的文件
- 步驟:
- 找到xuserdata文件(2個(gè))然后手動(dòng)刪除
- 把更改提交到遠(yuǎn)程的倉(cāng)庫(kù)
- 重新生成這兩個(gè)文件(隨便刪除項(xiàng)目中的一個(gè)空行,或者是打上一個(gè)斷點(diǎn),然后運(yùn)行程序)
- 關(guān)閉xcode,更新本地倉(cāng)庫(kù),重新提交本地的代碼到遠(yuǎn)程的服務(wù)器,xcuserdata就會(huì)被忽略(或者手動(dòng)忽略,ignore)
- 先點(diǎn)擊commit,選中ignore,點(diǎn)擊commit changes 提交(報(bào)錯(cuò))-->先更新 然后再提交
- 還有一些文件是需要忽略處理的
- 總結(jié):使用cornerstone進(jìn)行項(xiàng)目初始化并完成忽略操作
- 連接上倉(cāng)庫(kù),并且下載到本地
- 使用xcode新創(chuàng)建一個(gè)項(xiàng)目到code文件路徑中,把xcode關(guān)閉
- 把本地的修改提交到svn服務(wù)器(commit) - 會(huì)彈出一個(gè)框,選中ignore,會(huì)默認(rèn)的做一個(gè)忽略處理 - 彈出一個(gè)一個(gè)輸入注釋的界面,點(diǎn)擊右下角commit andChange
- 繼續(xù)進(jìn)行忽略操作,手動(dòng)的刪除兩個(gè)XuserData文件(右鍵delete),把刪除操作提交到svn服務(wù)器(commit change)
- 重新生成這兩個(gè)文件(打開(kāi)xcode,隨意修改一點(diǎn)代碼,或者是添加一個(gè)代碼,運(yùn)行程序就可以了)
- 手動(dòng)的忽略這兩個(gè)文件然后提交 直接提交 在提交的時(shí)候選中ignore選項(xiàng),提交發(fā)現(xiàn)報(bào)錯(cuò)(本地的文件和服務(wù)器端的文件不一樣) -- 先更新然后再提交
- 驗(yàn)證忽略操作已經(jīng)完成
- 在項(xiàng)目中修改某一個(gè)文件,點(diǎn)擊source control 點(diǎn)擊commit 提交如果修改了一個(gè)文件,提交的時(shí)候也只有一個(gè)文件顯示提交,那么就說(shuō)明已經(jīng)完成忽略處理
- 圖形化界面工具多人開(kāi)發(fā)的沖突處理
- 點(diǎn)擊?四種解決沖突的方法
- 選擇 左邊的或者右邊的,兩個(gè)都先保存一下
- 解決完沖突之后再提交
- 點(diǎn)擊?四種解決沖突的方法
Xcode使用storyboard注意點(diǎn)
- Xcode5之后支持已經(jīng)很好了
- 如果多人同時(shí)修改xib,沖突如何解決
- xib壞掉了不能打開(kāi)
- 右鍵 open as - source code
- <?xml version >
- 先找到subviews(開(kāi)始標(biāo)簽)
- 找到結(jié)尾標(biāo)簽(/subviews)
- 在開(kāi)始和結(jié)尾之間找問(wèn)題
- 嵌套包含的問(wèn)題
- 手動(dòng)調(diào)整
- 怎么解決約束混亂的問(wèn)題
- textField的約束設(shè)置到了button里面了
- 手動(dòng)調(diào)整,把屬于誰(shuí)的約束給誰(shuí),更新約束
- 嵌套包含的問(wèn)題
- xib壞掉了不能打開(kāi)
- 建議
- 建議在開(kāi)發(fā)中分工明確,盡量避免多人同時(shí)修改一個(gè)文件
- 在開(kāi)發(fā)中盡量每完成一個(gè)功能就提交一次,應(yīng)該在每次開(kāi)發(fā)前都做一次更新操作
Xcode使用靜態(tài)庫(kù)注意點(diǎn)
- 靜態(tài)庫(kù)
- 想給別人用我的框架,又不想讓別人看到源文件和實(shí)現(xiàn),打包成靜態(tài)庫(kù)就可以了
- regexLib(正則表達(dá)式:用戶名密碼的約束)
- .a文件是打不開(kāi)的
- 可以把靜態(tài)庫(kù)理解為框架 ,把它拖到項(xiàng)目里
- I:表示忽略,.a文件默認(rèn)是忽略的,需要手動(dòng)完成添加操作
- showInfinder
- cd
- ls - la
- libRegex.a
- svn status
- svn add libRegex.a
- commit 添加了靜態(tài)庫(kù)文件
- I:表示忽略,.a文件默認(rèn)是忽略的,需要手動(dòng)完成添加操作
- 如果在項(xiàng)目中用了靜態(tài)庫(kù),那么,.a文件默認(rèn)是被忽略的,需要使用命令行手動(dòng)的對(duì).a文件進(jìn)行add操作,把靜態(tài)庫(kù)文件添加到SVN的版本庫(kù)中
使用Xcode進(jìn)行checkout
- 李四加入開(kāi)發(fā),先分配一個(gè)SVN的賬號(hào)
- 李四不喜歡使用圖形界面工具,喜歡使用Xcode
- 使用Xcode連接到倉(cāng)庫(kù),下載到本地
- 偏好設(shè)置preference
- Accounts 點(diǎn)擊+
- Address
- type
- authreiication
- 出現(xiàn)repository就表示連接到了
- 點(diǎn)擊checkout,通常在最下面,選擇路徑,下載倉(cāng)庫(kù)
SVN目錄規(guī)范的介紹(團(tuán)隊(duì)負(fù)責(zé)人)
-
目錄規(guī)范
- trunk:主干,當(dāng)前開(kāi)發(fā)項(xiàng)目的主目錄
- branches:分支目錄,添加非主線功能的時(shí)候使用,開(kāi)發(fā)測(cè)試之后,可以合并到主干項(xiàng)目中
- tags:標(biāo)記目錄,通常作為重大版本的備份
-
SVN目錄使用的案例
- 某團(tuán)隊(duì)計(jì)劃開(kāi)發(fā)一款陌陌項(xiàng)目
- 此項(xiàng)目初期已經(jīng)有部分基礎(chǔ)代碼
- 研發(fā)團(tuán)隊(duì)在此基礎(chǔ)代碼上經(jīng)過(guò)3個(gè)月的努力,開(kāi)發(fā)了一個(gè)功能相對(duì)完備的v1.0版本上線推廣,并取得了良好的效果(備份到tags)
- 由于市場(chǎng)反饋良好,團(tuán)隊(duì)開(kāi)始著手v2.0版本的開(kāi)發(fā)工作
- 就在v2.0版本開(kāi)發(fā)進(jìn)行中,發(fā)現(xiàn)v1.0版本中有一個(gè)嚴(yán)重的bug,如果不及時(shí)修改,將造成嚴(yán)重的后果
- 研發(fā)團(tuán)隊(duì)收到bug報(bào)告后,立刻安排人員對(duì)v1.0版進(jìn)行修復(fù),但其他研發(fā)人員則繼續(xù)開(kāi)發(fā)v2.0版本的新功能
- 修復(fù)bug的人員很快就找到問(wèn)題的原因,并對(duì)bug進(jìn)行了修復(fù),并且發(fā)布了v1.1版本供用戶升級(jí),因此沒(méi)有造成重大的損失
- bug修復(fù)后,研發(fā)人員將修復(fù)后的代碼整合到研發(fā)主線中來(lái),這樣就可以保證今后發(fā)布的后續(xù)版本中不會(huì)再出現(xiàn)此問(wèn)題
- 就這樣,整個(gè)團(tuán)隊(duì)在大家的共同努力下,有條不紊的進(jìn)行著
- 具體流程
- 某開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)了一款應(yīng)用
- 一段時(shí)間后,1.0版本已經(jīng)開(kāi)發(fā)完畢
- 商品上架,把1.0版本發(fā)布到appstore,對(duì)1.0版本進(jìn)行備份
- 開(kāi)發(fā)團(tuán)隊(duì)繼續(xù)開(kāi)發(fā)2.0版本
- 2.0版本開(kāi)發(fā)到一半的時(shí)候,市場(chǎng)人員反饋發(fā)現(xiàn),1.0版本中存在重大的bug,需要馬上修復(fù)
- 開(kāi)發(fā)團(tuán)隊(duì)指派一個(gè)人(zs)修復(fù)1.0版本的bug,其他的人員繼續(xù)在主干中開(kāi)發(fā)2.0版本
- zs先把1.0版本(備份)拷貝一份,建立一個(gè)分支
- 在分支中解決bug
- 修復(fù)了1.0版本bug的新版本,命名為1.1版本
- 商品上架,把1.1版本發(fā)布到appstore,對(duì)1.1版本進(jìn)行備份
- 在主干上面合并分支,解決正在開(kāi)發(fā)的2.0版本中也存在的bug
- 刪除分支,繼續(xù)開(kāi)發(fā)2.0版本
SVN演練
- 打開(kāi)虛擬機(jī)
- 創(chuàng)建一個(gè)倉(cāng)庫(kù)MOMO,創(chuàng)建一個(gè)標(biāo)準(zhǔn)的倉(cāng)庫(kù),生成三個(gè)文件夾,默認(rèn)沒(méi)有任何人訪問(wèn)
- 創(chuàng)建用戶,設(shè)置權(quán)限
- copyURL,連接上倉(cāng)庫(kù)
- 使用圖形界面工具
- 連接倉(cāng)庫(kù),下載倉(cāng)庫(kù)到本地
- Xcode完成初始化處理
- 創(chuàng)建項(xiàng)目,放到trunk文件夾下面
- commit - ignore
- 手動(dòng)刪除繼續(xù)忽略的文件 - commit
- 重新生成這兩個(gè)文件(空行、斷點(diǎn)、運(yùn)行),提交(或者手動(dòng)忽略),更新操作,再點(diǎn)擊commit
- 修改文件,使用xcode提交,只提交一個(gè)文件,說(shuō)明忽略操作已經(jīng)完成
- 開(kāi)始開(kāi)發(fā)1.0 - 提交
- 開(kāi)發(fā)完畢1.0 - 提交
- 對(duì)1.0版本進(jìn)行備份
- 圖形界面工具中,右鍵tag
- log message :完成了1.0版本momo的開(kāi)發(fā),基本功能 - 提交tags里面就有了備份,更新本地客戶端
- 開(kāi)發(fā)團(tuán)隊(duì)繼續(xù)開(kāi)發(fā)2.0版本 - 提交
- 發(fā)現(xiàn)1.0版本中存在一個(gè)bug - commit
- 指派項(xiàng)目經(jīng)理修復(fù)1.0版本的bug,建立一個(gè)分支
- 先把1.0版本拷貝一份(branches) momo1.0
- 本地客戶端更新操作
- 項(xiàng)目經(jīng)理開(kāi)始修復(fù)bug
- 刷新command + r ,然后再進(jìn)行備份 tag ,1.1版本,版本的功能commit
- 其他人員在主干上繼續(xù)開(kāi)發(fā)2.0版本
- 解決主干trunk上面的bug,合并分支(操作本地倉(cāng)庫(kù),選中本地的主干,點(diǎn)擊merge,如果有驚嘆號(hào)需要更新一下,merge from),commit提交
- 刪除分支,右擊delete(注意:刪除分支要連接遠(yuǎn)程服務(wù)器位置刪除分支)