一 、SVN操作
> 1. svn import
> 2. svn checkout : 将伺服器所有代碼下載下傳到本地
> 3. svn commit : 送出本地最新代碼到伺服器
> 4. svn update : 從伺服器更新最新被修改的代碼
一、. 了解-SVN伺服器配置
-
伺服器環境搭建
Mac 下直接配置(Mac 下安裝SVN), (Mac下配置SVN 伺服器)
Windows下安裝Visual SVN Server(Visual SVN Server下載下傳位址)
- 因為作為新人進到公司無法接觸伺服器,而且大部分公司都是使用windows 作為伺服器,是以此處隻講第二種,作學習測試使用!*
- 安裝步驟
> 全程”下一步”,傻瓜式安裝.
- 控制區幾個選項的作用
> Repository - 代碼倉庫:存放不同版本的代碼 > Users - 使用者清單:建立或者删除使用者,代碼倉庫設定通路權限時使用 > Groups - 分組清單:将使用者分組,可以針對每組進行代碼倉庫通路授權操作
- 通路測試
> 可以通過浏覽器,輸入代碼倉庫位址進行通路 - 注意:在用戶端浏覽器通路時,注意位址需要使用對應的IP位址,不能使用計算機名稱.
- 操作補充
在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. 實戰演練
- 初始化項目,并上傳到SVN伺服器
方案: () 建立臨時項目 () svn import [path] URL --username=使用者名 --password=密碼 -m "注釋" 方案: () svn checkout URL [path] --username=使用者名 --password=密碼 : 初始化本地倉庫 () 建立項目 () 使用 svn add 指令将項目所有檔案添加到本地版本控制 () 使用 svn commit 送出本地項目到遠端伺服器
- 從伺服器下載下傳一份完整代碼到本地開始開發
- 修改檔案送出
(1) 修改檔案 (2) 使用svn commit -m "注釋" : 送出本地檔案到伺服器
- 建立檔案送出
() 建立檔案 () 使用 svn add 指令将項目所有檔案添加到本地版本控制 () 使用 svn commit -m "注釋" : 送出本地項目到遠端伺服器
-
删除檔案送出
一定不要手動删除檔案
(1) svn remove filename 或者 svn delete filename 從本地版本控制以及對應檔案删除 () svn commit -m "注釋" : 送出本地操作到伺服器, 使伺服器也删除對應的檔案
- 常用指令補充
svn status 檢視目前工作空間内, 所有 有變化的檔案 的狀态 如果執行此指令什麼都沒輸出, 代表本地沒有東西要送出 svn log 檢視目前版本的記錄檔(什麼人, 什麼時間, 做了什麼操作)
- 版本控制中,各個檔案狀态參考
' ' 沒有修改 'A' 被添加到本地版本控制 'C' 沖突 'D' 被删除(通過svn指令删除的檔案) 'I' 被忽略 'M' 被修改 'R' 被替換 ‘G’ 被合并 ‘U’ 已經更新 ‘E’ 已經存在 'X' 外部定義建立的版本目錄 '?' 檔案沒有被添加到本地版本控制 '!' 檔案丢失或者不完整(不是通過svn指令删除的檔案) '' 受控檔案被其他檔案阻隔
- 注意事項
* 任何本地的操作, 如果想讓伺服器也做同樣的操作, 就直接通過 commit操作 送出到伺服器 * 任何向伺服器送出的操作,都要加注釋 添加 -m參數
四. SVN終端-版本回退
- 版本回退概念以及原因?
概念: 是指将代碼(本地代碼或者伺服器代碼), 回退到之前記錄的某一特定版本 原因: 如果代碼做錯了, 想傳回之前某個狀态重做;
- 修改了,但未送出的情況下, 回退代碼
方案: (大力推薦) svn revert (作用:傳回到上次送出後版本對應的最原始的狀态) 方案2: (不推薦) 删除整個項目,重新checkout
- 修改了,并且送出了的情況反悔
方案1: 大力推薦 - svn update (作用: 将本地代碼更新到與伺服器相同的版本) - svn merge 檔案名 -r 版本:版本 (作用: 把版本 -> 版本 的 diff 作用在目前版本) - svn commit -m “本地和伺服器都回退到某一指定版本” (作用: 讓伺服器代碼也退回到之前某個版本狀态) 方案: - svn update -r 指定版本号(此時本地代碼已經變化,但是伺服器沒有改變) *--------以下步驟是為了讓伺服器代碼也復原到以前的版本----------* - 修改部分檔案 - svn update (此時會産生沖突, 選擇使用自己的代碼即可) - 再次送出代碼 方案: - 手動儲存需要回退的檔案内容 - 删除檔案,送出到伺服器 - 重新添加檔案,上傳到伺服器
開發經驗: 最好忽略沒必要送出的檔案
過濾不需要上傳的檔案, 忽略檔案(xcuserdata檔案夾)
> 檔案打開狀态
> 斷點資訊
> 檔案夾關閉打開狀态
** 注意:projct setting檔案不要忽略 **
> 存放一些檔案順序和檔案夾結構,檔案引用等資訊
五. SVN目錄規範
- 檔案目錄作用?
trunk : 主幹,目前開發項目的主目錄; 我們之前更新代碼,送出代碼都是在這個檔案夾進行操作 brannches:分支目錄 添加非主線功能時使用,開發測試之後,可以合并到主幹項目中。修複Bug,研發不确定的新功能都在這裡做 tags:标記目錄,通常作為重大版本的備份; 如果有釋出版本出現Bug,可以快速的找到對應版本的項目備份,然後開一個分支,進行Bug修複,用于與主幹區分
六. 了解-SVN 托管平台
1. svnspot
2. svnchina
文/跟着MJ走(簡書作者)
原文連結:http://www.jianshu.com/p/c8cf54e179ba
著作權歸作者所有,轉載請聯系作者獲得授權,并标注“簡書作者”。