天天看點

源代碼管理工具-SVN一 、SVN操作

一 、SVN操作

> 1. svn import
> 2. svn checkout : 将伺服器所有代碼下載下傳到本地
> 3. svn commit : 送出本地最新代碼到伺服器
> 4. svn update : 從伺服器更新最新被修改的代碼
           

一、. 了解-SVN伺服器配置

  1. 伺服器環境搭建

    Mac 下直接配置(Mac 下安裝SVN), (Mac下配置SVN 伺服器)

    Windows下安裝Visual SVN Server(Visual SVN Server下載下傳位址)

    • 因為作為新人進到公司無法接觸伺服器,而且大部分公司都是使用windows 作為伺服器,是以此處隻講第二種,作學習測試使用!*
  2. 安裝步驟
    > 全程”下一步”,傻瓜式安裝.
               
  3. 控制區幾個選項的作用
    > Repository
         - 代碼倉庫:存放不同版本的代碼
     > Users
         - 使用者清單:建立或者删除使用者,代碼倉庫設定通路權限時使用
     > Groups
         - 分組清單:将使用者分組,可以針對每組進行代碼倉庫通路授權操作
               
  4. 通路測試
    > 可以通過浏覽器,輸入代碼倉庫位址進行通路
     - 注意:在用戶端浏覽器通路時,注意位址需要使用對應的IP位址,不能使用計算機名稱.
               
  1. 操作補充
    在windows下面檢視ip 位址
     開始 —> 運作   cmd 
     在指令行裡面  運作 ipconfig
               

二. 掌握-UNIX基本指令

1. 必學指令

help [子指令] : 檢視某一個具體的子指令的使用方法
           

2. 常用指令

- cd path : 将目前路徑切換到path路徑
- pwd :檢視目前所在路徑
- ls (-a / -l / -G) :  檢視目前檔案夾下所有檔案及檔案夾
- touch filename1 filename2 : 建立一個或者多個檔案 
- rm filename : 删除檔案
- open filename :打開檔案
- cat filename :檢視檔案内容
- more filename :分頁檢視檔案内容
- mkdir 檔案夾名稱 :建立一個檔案夾
- mv oldFilePath newFilePath :移動檔案(可借助此指令給檔案重命名)
           

3. 補充

.  代表目前檔案路徑
.. 代表上級目錄

以 .開頭的檔案,代表隐藏檔案
    * 顯示隐藏檔案
         defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
    * 不顯示隐藏檔案
         defaults write com.apple.finder AppleShowAllFiles No && killall Finder                

4. 使用注意

>  指令和參數之間需要添加空格
>  如果要使用目前目錄中的檔案名,輸入到一半時,按TAB鍵能夠補全                

三. 掌握-SVN終端演練(個人開發)

1. 指令格式

指令行格式:

    svn <subcommand> [options] [args]
    svn 子指令 [選項] [參數]

其中中括号裡面的内容可以省略                

2. 必學指令

svn [子指令] --help
svn help [子指令]                

3. 實戰演練

  1. 初始化項目,并上傳到SVN伺服器
    方案: 
         () 建立臨時項目
         () svn import [path] URL --username=使用者名 --password=密碼 -m "注釋"
    
     方案:
         () svn checkout URL [path] --username=使用者名 --password=密碼 : 初始化本地倉庫
         () 建立項目
         () 使用 svn add 指令将項目所有檔案添加到本地版本控制
         () 使用 svn commit 送出本地項目到遠端伺服器                
  1. 從伺服器下載下傳一份完整代碼到本地開始開發
  2. 修改檔案送出
    (1) 修改檔案
     (2) 使用svn commit -m "注釋" : 送出本地檔案到伺服器                
  3. 建立檔案送出
    () 建立檔案
     () 使用 svn add 指令将項目所有檔案添加到本地版本控制
     () 使用 svn commit -m "注釋" : 送出本地項目到遠端伺服器                
  4. 删除檔案送出

    一定不要手動删除檔案

    (1) svn remove filename 或者 svn delete filename 從本地版本控制以及對應檔案删除
     () svn commit -m "注釋"  : 送出本地操作到伺服器, 使伺服器也删除對應的檔案                
  5. 常用指令補充
    svn status 
         檢視目前工作空間内, 所有 有變化的檔案 的狀态
         如果執行此指令什麼都沒輸出, 代表本地沒有東西要送出
      svn log 
         檢視目前版本的記錄檔(什麼人, 什麼時間, 做了什麼操作)                
  6. 版本控制中,各個檔案狀态參考
    ' ' 沒有修改
     'A' 被添加到本地版本控制
     'C' 沖突
     'D' 被删除(通過svn指令删除的檔案)
     'I' 被忽略
     'M' 被修改
     'R' 被替換
     ‘G’ 被合并
     ‘U’ 已經更新
     ‘E’ 已經存在
     'X' 外部定義建立的版本目錄
     '?' 檔案沒有被添加到本地版本控制
     '!' 檔案丢失或者不完整(不是通過svn指令删除的檔案)
     '' 受控檔案被其他檔案阻隔
               
  7. 注意事項
    * 任何本地的操作, 如果想讓伺服器也做同樣的操作, 就直接通過 commit操作 送出到伺服器
     * 任何向伺服器送出的操作,都要加注釋 添加 -m參數                

四. SVN終端-版本回退

  1. 版本回退概念以及原因?
    概念: 是指将代碼(本地代碼或者伺服器代碼), 回退到之前記錄的某一特定版本
     原因: 如果代碼做錯了, 想傳回之前某個狀态重做;
               
  2. 修改了,但未送出的情況下, 回退代碼
    方案: (大力推薦)
         svn revert (作用:傳回到上次送出後版本對應的最原始的狀态)
    
     方案2: (不推薦)
        删除整個項目,重新checkout                
  3. 修改了,并且送出了的情況反悔
    方案1: 大力推薦
          - svn update 
              (作用: 将本地代碼更新到與伺服器相同的版本)
          - svn merge 檔案名 -r 版本:版本
             (作用: 把版本 -> 版本 的 diff 作用在目前版本)
           - svn commit -m “本地和伺服器都回退到某一指定版本”
               (作用: 讓伺服器代碼也退回到之前某個版本狀态)
    
     方案: 
       - svn update -r 指定版本号(此時本地代碼已經變化,但是伺服器沒有改變)
         *--------以下步驟是為了讓伺服器代碼也復原到以前的版本----------*
       - 修改部分檔案
       - svn update (此時會産生沖突, 選擇使用自己的代碼即可)
       - 再次送出代碼
    
     方案:
        - 手動儲存需要回退的檔案内容
        - 删除檔案,送出到伺服器
        - 重新添加檔案,上傳到伺服器                

開發經驗: 最好忽略沒必要送出的檔案

過濾不需要上傳的檔案, 忽略檔案(xcuserdata檔案夾)

> 檔案打開狀态
    > 斷點資訊
    > 檔案夾關閉打開狀态
** 注意:projct setting檔案不要忽略 **
    > 存放一些檔案順序和檔案夾結構,檔案引用等資訊
           

五. SVN目錄規範

  1. 檔案目錄作用?
    trunk : 主幹,目前開發項目的主目錄;
          我們之前更新代碼,送出代碼都是在這個檔案夾進行操作
     brannches:分支目錄
         添加非主線功能時使用,開發測試之後,可以合并到主幹項目中。修複Bug,研發不确定的新功能都在這裡做
     tags:标記目錄,通常作為重大版本的備份;
         如果有釋出版本出現Bug,可以快速的找到對應版本的項目備份,然後開一個分支,進行Bug修複,用于與主幹區分                

六. 了解-SVN 托管平台

1. svnspot

2. svnchina

文/跟着MJ走(簡書作者)

原文連結:http://www.jianshu.com/p/c8cf54e179ba

著作權歸作者所有,轉載請聯系作者獲得授權,并标注“簡書作者”。

繼續閱讀