SVN

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è)角色
  • 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
      • 紅色的星號(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
  • svn如何查看版本信息

    • cd
    • 更新獲得最新的版本信息
      • $ svn update
    • 查看版本信息
      • $ svn log

新同事加入開(kāi)發(fā)涉及操作

  • 給新同事分配一個(gè)SVN賬號(hào) (賬號(hào):zs密碼:zs)
  • 新同事需要連接到SVN的遠(yuǎn)程服務(wù)器,下載倉(cāng)庫(kù)到本地
  • 開(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ù)

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
    • 修改了內(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查看版本信息

多人開(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è)都先保存一下
      • 解決完沖突之后再提交

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í),更新約束
  • 建議
    • 建議在開(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ù)文件
    • 如果在項(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ù)器位置刪除分支)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,463評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,009評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,778評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,218評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,436評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,795評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,993評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,229評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,659評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,917評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,687評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,990評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容

  • 命令的使用 1、檢出 svn cohttp://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username...
    小李龍彪閱讀 4,455評(píng)論 0 9
  • iOS 開(kāi)發(fā) SVN 版本控制器 更多技術(shù)交流請(qǐng)加群 iOS技術(shù)聯(lián)盟 27512466 SVN是Subversio...
    Sunny_Fight閱讀 8,803評(píng)論 7 63
  • SVN服務(wù)器相關(guān)配置(倉(cāng)庫(kù)|用戶|組|訪問(wèn)) //http://xxx.xxx.xxx.xxx/svn/XYF/ ...
    CoderXYF閱讀 750評(píng)論 0 1
  • &開(kāi)發(fā)過(guò)程中離不開(kāi)源代碼的管理, 目地:為了解決在軟件開(kāi)發(fā)過(guò)程中,由源代碼引發(fā)的各種蛋疼、繁瑣的問(wèn)題。 目前開(kāi)發(fā)使...
    早起的蟲(chóng)兒子被鳥(niǎo)吃閱讀 2,451評(píng)論 0 16
  • 會(huì)寫(xiě)作的人,往往思考能力較強(qiáng);持續(xù)寫(xiě)作的人,容易收獲成就感和幸福感;寫(xiě)出一定影響力的人,通常有著豐厚的金錢(qián)回報(bào)……...
    孔小明閱讀 576評(píng)論 1 13