1. 程式人生 > >iOS版本控制工具(SVN,GIT,SourceTree)

iOS版本控制工具(SVN,GIT,SourceTree)

公司的實際開發中,在天朝使用較多的還是SVN,因為SVN是集中式的,在天朝上班你們都懂的!  -----------------svn-----------------  

一:最常用基本步驟---

  • 下載(完整下載,第一次),將伺服器的專案下載到本地開始開發
svn checkout ip —uaerbane=? —password=?     //這裡需要add 簡:co
  •  更新倉庫,伺服器專案有變動的時候需要更新到本地,以免錯誤或者衝突
svn updata               //這裡的直接commit就可以了 簡:up
  • 寫程式碼。。。。。。。。。。。。。
  • 檢視狀態
svn  status  簡:st
  • 新增到倉庫
svn add name
  • 提交專案

svn commit -m “註釋"

簡:ci

  • 版本回退:錯誤操作,需求更改,檢視歷史
svn updata r版本號   //查看回退版本 正式:
    1. svn update
    2. svn merge      -r  版本號(現):版本號(前) name
    3. svn ci -m “註釋"
  • 移除檔案
svn remove name 簡:rm
  • 檢視版本號
    1. svn updata      //先更新所有資料
    2. svn log            //列印所有版本

 
二:衝突解決--------

out of data——
  • —>updata
  • —>commit
(手動解決衝突:postpone): svn resolved name 有效的避免衝突:
  • 先updata->子啊修改檔案
  • 或者修改檔案之前和同事打招呼
補充: 當座位一個新⼈人加⼊入(李四進⼊入公司) 1.需要做的事情
    • 和項⺫⽬目經理要svn的伺服器地址/svn賬號和密碼 需求⽂文件 : 當前的需求
    • 接⼝口⽂文件 : 接⼝口⽂文件記錄詳細的伺服器所有的接⼝口 效果圖 : 界⾯面到底做成什麼樣⼦子

2.將伺服器完整的程式碼下載到本地

  • svn checkout 伺服器地址 ⽤使用者名稱和密碼
3.程式碼衝突
    • out of date : 過期
    • df : 在命令⾏行中給展⽰示所有的不同的地⽅方
    • e : 在命令⾏行編輯衝突
    • s : 展⽰示可解決衝突的選項
    • mc : 使⽤用我的程式碼,來覆蓋伺服器程式碼
    • tc : 使⽤用伺服器的程式碼,來覆蓋我的程式碼
    • p : 對⽐比所有的版本變化,⼿手動解決衝突—>svn resolved person.h
注意: 1>在修改公共⽂檔案之前,最好先update,然後再修改 2>在修改公共⽂檔案之前,可以和同事說⼀一聲,先不要修改⽂檔案,修改完之後讓同事更 新

三:圖形化介面(UI):Cornerstone/Version

這裡簡單介紹CornerStone的使用及注意點  --主介面--

實用Cornerstone需要注意的幾個地方:

    • 1.檢視日誌
找到“Log”選項,選擇並點選。
檢視自己當前的版本是否是最新的,如果不是最新的版本,從第2步開始執行;
如果自己當前的版本是最新的,從第3步開始執行;
    • 2.更新到最新版本
當前程式設計師在開啟工程專案之前,找到“Update to Latest Revision”選項,選擇並點選。
目的:保持當前程式設計師客戶端的專案版本是最新的。
    • 3.編輯專案
    • 4.提交之前,再次點選“Update to Latest Revision”,保持專案是最新版本。
    • 5.更新最新版本後,如果有錯誤,衝突等情況,解決,直到沒錯誤!
    • 6.提交專案,找到“Commit Changes”選項,選擇並點選。
目的:把當前編輯後的專案提交的伺服器。
    • 7."lock"和“unlock”的使用
當我們正在編輯某個檔案時,為了防止被其他人修改,可以在編輯之前,使該檔案處於鎖定狀態,當我們編輯後,要提交的時候,再解鎖。
    • 8.提交專案,都要寫詳細備註並署名。
    • 9.恢復到以前的版本,以前其他出錯情況,請參考稍後的文件說明或上網搜尋。

最後總結一下使用步驟

1.項⽬目經理初始化項⽬目 1>項⽬目經理將伺服器已有的內容下載到本地

  • 記住選擇正確的svn版本號—>1.7 2>項⺫⽬目經理建立項⺫⽬目到code⽂資料夾 3>項⺫⽬目經理忽略掉⼀一些不需要的⽂檔案
  • Xcode會幫我們記錄當前正在編輯的⽂檔案,下次開啟時停留在該⽂檔案
  • Xcode會幫我們記錄⺫⽬目錄開啟情況,同事不需要共享 斷點資訊同事不需要共享,所有也需要忽略 xcuserdata

2.使⽤用Xcode的svn注意點 1>當項⺫⽬目中如果使⽤用到了靜態庫,必須使⽤用命令⾏行將靜態庫新增到svn管理之下 2>項⺫⽬目中如果使⽤用storyboard,svn的管理也需要特別注意

  • 如果可以使⽤用xib那麼儘量使⽤用xib 保證同時只有⼀一個⼈人在修改storyboard

3.公司使⽤用svn技巧 儘可能修改⽂檔案之前要update,寫⼀一些程式碼之後就⽴立即提交到伺服器 如果今天寫了很多程式碼,建議在下班前半個⼩小時就提交.

cornerStone中三個基本目錄的含義:tags,branch,truck
  • truck主分支,是用來做主方向開發的,一個新模組的開發,這個時候就放在trunk,當模組開發完成後,需要修改,就用branch。
  • branch:是用來做並行開發的,這裡的並行是指和trunk進行比較。
  • tag:是用來做一個milestone的,不管是不是釋出版本,但都是一個可用的版本。這裡,應該是隻讀的。更多的是一個顯示用的,給人一個可讀的標記。咱們ITOO1.0階段開發完畢,就可以打一個tag,然後進入2.0的開發。tags的作用是將在branches上修改的bug的程式碼合併到trunk上時建立個版本標識,以後branches上修改的bug程式碼再合併到trunk上時就從tags的version到branches最新的version合併到trunk,以保證前期修改的bug程式碼不會再合併。 

        假設個例子,ITOO1.0開發完成,這個時候要做一個tag,tag_release_1_0,然後基於這個tag做釋出,比如安裝程式等。trunk進入 1.1的開發,但是1.0發現了bug,那麼就需要基於tag_release_1_0做一個分支(branch),branch_bugfix_1_0,基於這 個branch進行bug修改,等到bugfix結束,做一個tag,tag_release_1_0_1,然後,根據需要決定 branch_bugfix_1_0是否併入主幹(trunk)。

對於svn還要注意的一點,就是它是全域性版本號,其實這個就是一個tag的標記,所以我們經常可以看到,什麼什麼release,基於xxx專案的 2xxxx版本。就是這個意思了。但是,它還明確的給出一個tag的概念,就是因為這個更加的可讀,畢竟記住tag_release_1_0要比記住一個 很大的版本號容易的多。

        SVN真的是一個很強大的工具,他很好的管理了我們的團隊合作。

-----------------git-----------------  

git中需要注意的幾個命令(名稱

  • push:提交到伺服器
  • pull:更新
  • clone:完整下載
  • commit:本地提交
 一.命令⾏行的演練 1.初始化⼀一個程式碼倉庫
  • git init
2.如果使⽤用git必須給git配置⼀一個⽤使用者名稱和郵箱 給當前的git倉庫配置⼀一個⽤使用者名稱和郵箱

配置⼀一個全域性的⽤使用者名稱和郵箱
  • git config —global user.name “why”
  • git config —global user.email “[email protected]” 3.初始化項⺫⽬目
  1. touch main.m : 建立了main.m
  2. git add main.m : 將新新增的⽂檔案或者修改的⽂檔案新增到暫存區
  3. git commit -m “初始化項⺫⽬目”
  4. git add . : 將所有沒有被新增到暫存區或者程式碼倉庫的⽂檔案新增到暫存區

注意:⽆無論是新新增的⽂檔案或者修改的⽂檔案,都需要先通過add命令新增到暫存區中, 之後再通過commit命令新增到本地倉庫中
4.檢視⽂檔案的狀態 git status
  • 紅⾊色 : 新建立的⽂檔案或者被修改的⽂檔案,沒有被新增到暫存區
  • 綠⾊色 : 表⽰示⽂檔案在暫存區,但是沒有被新增到本地倉庫中 5.給命令起別名
    • git config alias.st “status”
    • git config alias.ci “commit -m”
    • git config —global alias.st “status”

6.git刪除⽂檔案 git rm ⽂檔名

7.檢視版本號 git log
  • git reflog
  • git config --global alias.lg "log --color --graph -- pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit” git lg

8.git的版本號是由sha1演算法⽣生成40位的雜湊值 9.版本回退
  • git reset —hard HEAD : 回退到當前的版本
  • git reset —hard HEAD^ : 回退到上⼀一個版本 git reset —hard HEAD^^ : 回退到上上個版本 git reset —hard HEAD~100 : 回退到前100版本 git reset -hard 版本號(前5位)

                                              

二.團隊開發—共享版本庫

  1. 真實的GIT伺服器的搭建,是⾮非常繁瑣的事情(Linux)
  2. 一個⽂資料夾
  3. 優盤
  4. 將程式碼託管到別⼈人的伺服器(Github/OSChina)

1.⽂資料夾作為共享版本庫 git init —bare

2.項⺫⽬目經理將共享版本庫的內容先下載下來 git clone 地址

3.新增需要忽略的⽂檔案
  • touch .gitignore 去github上搜索.gitignore->Objective-C git add .gitignore
  • git commit -m “添加了需要忽略的⽂檔案”

4.項⺫⽬目經理初始化項⺫⽬目
  • git commit -m “初始化項⺫⽬目”—>提交到原生代碼倉庫

5.將項⺫⽬目push遠端倉庫中 git push origin

6.當原始碼管理是使⽤用GIT,並且在Xcode進⾏行多⼈人開發的操作 注意:當使⽤用GIT,項⺫⽬目中⽤用到了靜態庫就不需要通過命令⾏行進⾏行新增

三.版本備份(瞭解) 1.1.0版本開發完成,之後對1.0版本進⾏行備份

  • git tag -a weibo1.0 -m “這個是1.0版本” : 給某⼀一個版本打上標籤
  • git tag : 檢視所有的標籤 2.需要將1.0版本的標籤,push到伺服器
  • git push origin weibo1.0
3.繼續開發2.0版本
4.發現1.0版本有bug,從標籤⾥裡⾯面clone 1.0版本,從標籤建立⼀一個fixbug分⽀支,在分 ⽀支中修復bug
  • git clone 共享版本庫
  • git checkout weibo1.0(標籤的名稱)
  • git checkout -b weibo1.1fixbug(分⽀支名稱)

5.修復後的版本上傳AppStore/將1.0fixbug進⾏行備份/將1.0fixbug版本和2.0版本 進⾏行合併\
  • git tag -a weibo1.1 -m “這個是修復了1.0版本bug的1.1版本”
  • git tag
  • git push origin weibo1.1 將⼦子分⽀支中程式碼合併到主分⽀支,pull—>weibo1.1fixbug—>push master—>其 它同事更新


6.刪除分⽀支
  • git branch -r
  • git branch -r -d 分⽀支名稱

四.將程式碼託管到別⼈人的伺服器⾥裡⾯面

 1.Github

建立Github上的倉庫
  • 1) HTTPS : http + SSL
  • 2) SSH : 公鑰和私鑰—>settings—>SSH Keys—>⽣生成公鑰和私鑰 刪除程式碼倉庫 可以給別⼈人的程式碼提⽐比較功能/對別⼈人的程式碼重構:fork—>pull Request issues : 給框架作者提問題
  • 2.OSChina(Github上⾯面項⺫⽬目不能私有化:交錢可以) 建立程式碼倉庫

HTTPS/SSH
.gitignore不夠完整 : ⼿手動新增完成 如果項⺫⽬目想要多⼈人開發:管理—>成員管理—>新增成員:讓新⼈人註冊⼀一個 OSChina

圖形化介面(UI):Cornerstone/Version   這裡只大致介紹sourceTree,畢竟在中國Git使用並不常見

SourceTree

作為一個懶人 Git的命令列我是不太愛的 所以GUI的工具就成了我的首選
Mac下的Git工具真是五花八門 著名的有Tower SmartGit等等(更多可以看下這裡的介紹)

今天我們介紹的是SourceTree 出品方為Atlassian 旗下的產品還有著名的track工具JIRA Github的競爭者Bitbucket等等(這兩個我也是經常用的 尤其是BitBucket 支援免費私有倉哦~) 

SourceTree的特點如下

  • 免費
    SourceTree是免費使用的 只要簡單的註冊一下就好了
  • 跨平臺
    Windows和Mac都可以用
  • 完美支援Github和Bitbucket
    我所有Github和Bitbucket上的專案都是用它來管理的 當然 公司的專案也是用SourceTree管理 無不干擾
  • 支援Git Flow
    Git Flow(翻譯版)是一套關於Git的使用實踐 現在已得到廣泛的認可和推廣 如果使用得當 開發管理的過程將變得更輕鬆和清晰
這是SourceTree的Repo列表介面 也是開啟時的預設介面 這裡可以對所有的Repo進行統一的管理 也支援分組這是SourceTree的Repo詳情介面 這裡是單獨對某個Repo操作的地方 Git的所有操作你都可以在GUI上進行 非常的方便順手 具體細節就請自己使用之後慢慢體會吧 這裡就不多介紹了 -----------------Xcode----------------- 上面的SVN和Git其實都可以在Xcode中直接使用,如果你只是簡單的實現提交和更新伺服器倉庫裡面的程式碼,使用Xcode基本上就可以實現了,但是有的時候可能Xcode不能滿足我們的要求或者相對比較麻煩,所以我們一般情況都不會立刻就選擇Xcode的,除非專案很簡單 下面是Xcode一些常用的版本控制操作簡單列舉:  選擇對應的選項實現:

提交程式碼到伺服器程式碼倉庫(註釋)  如果你看到了這裡,或許你對版本控制已經基本上了解,但或許你也感覺有點蒙,但是沒關係,上面這麼多,實際開發中用到的十分之一不到。

相關推薦

iOS版本控制工具SVN,GIT,SourceTree

公司的實際開發中,在天朝使用較多的還是SVN,因為SVN是集中式的,在天朝上班你們都懂的!  -----------------svn-----------------   一:最常用基本步驟--- 下載(完整下載,第一次),將伺服器的專案下載到本地開始開發 sv

3版本控制工具SVN和MyEclipse整合

1.引言       在本篇部落格主要介紹如何在Myeclipse中使用我們的SVN,首先我們需要安裝我們的SVN外掛,讓我們的軟體支援SVN,我用到的MyEclipse的版本是10,SVN的外掛下載地址為:SVN_MyEclipse下載連結

Git版本控制工具----git的安裝及建立版本

本文並非原創性文章。 【正文】 一、初識Git: Git是目前世界上最先進的分散式版本控制系統(沒有之一)。它的開發者就是大名鼎鼎的Linux作業系統的作者Linus Torvalds。Git被開發出來的初衷是為了更好的管理Linux核心,而現在卻廣泛應用於各種專案

版本控制工具SVN和Maven的區別

一、只有svn的情況         首先考慮沒有maven的情況。這樣的話,專案組每個開發人員,都需要在本地check out所有的原始碼。 每次提交之前,需要先更新周邊工程的程式碼。由於工程之間是依賴的,所以很可能需要把所有的程式碼都更新一遍。在專案依賴混亂的情況下,就更麻煩 ,等於說,專案組成員之間

版本控制工具Svn

1、什麼是SVN版本控制軟體 svn是近年來崛起的版本管理工具,是cvs的接班人。目前,絕大多數開源軟體都使用svn作為程式碼版本管理軟體。(bae、淘寶code、開源社群oschina)   SVN軟體屬於C/S結構軟體,所以在使用時必須安裝伺服器端與客戶端。 2、SVN使用

Swift-iOS常用控制元件UIActivityIndicatorView 活動指示器

//UIActivityIndicatorView 活動指示器 func createActivityIndicatorView() { //建立活動指示器 let aiv = UIActi

版本控制工具SvnGit

例如 ech source -s lan https git add 更改 date 首先介紹svn,屬於老牌的工具 svn ci 提交代碼 alias commit svn up 更新代碼 alias update svn st 修改的文件 alias st svn di

Android 版本控制工具SVNGIT 區別, Git使用詳情

為什麼要用版本控制工具? 多人協作開發 方便程式碼統一管理 常用的版本控制工具有哪些? CVS, SVN, GIT GIT 和 SVN 的區別 Git 是目前世界上最先進的分散式版本控制系統 SVN 是集中式的管理工具 1.版本庫是集中放在中央伺服器的,而幹活的時

Git版本控制工具學習

       Git是一個版本控制系統,用來追蹤計算機檔案的變化的工具,也是一個供多人使用的協同工具。它是一個分散式的版本控制系統,本文將簡單介紹如何使用。簡單來說,就是你要和你的夥伴一起完成一項任務,但是你們要互相交換修改,檢視自己的歷史版本等。版本控制系統就是幫助我們做這

版本控制工具 gitsvn(分散式vs集中式)

版本控制:即記錄一個或若干檔案內容變化,以便將來查閱特定版本修訂情況以及回溯的系統。 集中式–svn SVN, 全名Subvision; 作為集中式版本控制工具,版本庫集中存放在中央伺服器,team裡每個人work時從中央伺服器下載程式碼,是必須聯網才能工作

git分散式版本控制工具 初認識

 軟體安裝 git的安裝問題: 永久有效(百度雲盤/安裝包) 在安裝過程中建議使用 git bash 作為命令列工具,safest  配置: 首先 開啟命令列 進入git的bin下 進行全域性配置 git config -

版本控制工具SVNGIT

一、為什麼會出現原始碼管理工具 為了解決在軟體開發過程中,由原始碼引發的各種不爽、繁瑣的問題, 二、不採用原始碼管理工具會出現什麼問題 1、無法後悔:做錯了一個操作後,沒有後悔藥可以吃 2、版本備份:費空間、費時間 3、版本混亂:因版本備份過多造成混亂,難以找回正確的想要的版本 4、程式碼衝突:多

版本控制工具(CVS、SVNGIT)簡介

1 版本控制工具的功能: 版本控制工具: 提供完備的版本管理功能,用於儲存、追蹤目錄(資料夾)和檔案的修改歷史,是軟體開發者的必備工具,是軟體公司的基礎設施。版本控制軟體的最高目標,是支援軟體公司的配置管理活動,追蹤多個版本的開發和維護活動,

IDEA版本控制工具VCS中使用Git,以及快捷鍵總結不使用命令

場景介紹: 工作中多人使用版本控制軟體協作開發,常見的應用場景歸納如下: 假設小組中有兩個人,組長小張,組員小袁 場景一:小張建立專案並提交到遠端Git倉庫 場景二:小袁從遠端Git倉庫上獲取專案原始碼 場景三:小袁修改了部分原始碼,提交到遠端倉庫 場景四:小張從

版本控制工具——Git常用操作

之前 將在 根據 並且 fsck args git工作區 with 索引 本文由雲+社區發表 作者:工程師小熊 摘要:上一集我們一起入門學習了git的基本概念和git常用的操作,包括提交和同步代碼、使用分支、出現代碼沖突的解決辦法、緊急保存現場和恢復現場的操作。學會

基於GitLab與Git Extensions搭建版本控制工具

基本 cmd img html nat 需求 無法 spa hang 1.背景   大家知道GitHub是現在非常流行的代碼托管工具,但是如果有些項目不想開源的話,則需要付費,因此萌生了自己搭建一個Git的版本控制工具,供內網使用。GitLab則是個好的選擇,但是GitL

Git分布式版本控制工具

繼續 新建 執行 是把 -h png 版本號 工作 直接 一、安裝Git    1、下載Windows版的Git:msysgit;官方下載地址:http://msysgit.github.io,安裝選定要安裝的目錄(路徑杜絕中文),剩下的按照默認安裝即可,參考:GIt安裝教

版本控制工具Git

但是 不想 之前 設置 xxx 遠程 -o span 兩種 git三層結構 工作區working directory 暫存區staging index 版本庫git directory(Repository) Git文件的四種狀態 untracked未被追蹤 Modifie

1.git版本控制工具的安裝與使用

use ssh-key origin read name log -- cache 本地倉庫 git下載 官方地址:https://git-scm.com/download/win 百度雲地址:我的網盤/安裝文件/Git-2.15.0-64-bit.rar git基本使

git版本控制工具的使用

如果 pre git log 包括 load tps 出現 怎麽 ini 目錄 git版本管理工具使用 一丶Git的下載與安裝 1.windows下的git的下載與安裝 2.linux下的git安裝 二丶常用命令 三丶Git倉庫 1.配置倉庫信息 2.倉庫的創建於管理