ios使用自带git respository管理项目
最近突然感興趣于研究一下apple自帶的git庫管理ios源碼,目前有一些淺顯的了解,網上相關的中文介紹不是太多,所以寫下來分享一下,一來可以記錄,二來可以以后發現問題再來擴充。
在創建工程時,會有這樣一個選項,當我們勾選上后,Xcode就會為我們的工程創建一個隱藏的git庫,每當代碼有更改時,提交更新后就會添加到git庫中,類似于我們的svn。
好了,現在開始體驗!
項目創建好后,git庫會為我們默認initall添加一個基礎版本。
具體查看辦法:Xcode右上角Organizer按鈕---Repositories標簽頁,在左邊導航欄找到自己的項目,如下圖所示。
這就是為我們默認提交的一份代碼。
接下來我們給工程中新添加一個文件:firstViewController,你會看到新添加的文件后有 字母 A 標示, 它代表著這是一個新添加的內容。字母 M 代表 修改過的內容。
File-Source Control 可以看一下列出的幾個常用功能,我們提交更新,撤銷更新,合并分支都是在這里打開,下圖中都標了出來。
接下來我們點擊Commit,看看有什么新奇的頁面展示,確實很強大,左邊給我們列出了添加或修改的文件,右邊是對比圖,那個地方進行了修改(添加),是不是比svn更絢麗一些?由于我是新添加的文件,apple給我們標示:File was added。
【若要提交更新,點右下角的按鈕,注意,必須要為此次更新寫上說明文字,這真是一個很好的習慣,apple強制我們來做】
如果之后沒有任何error提示,就是更新成功,我迫不及待的打開Organizer看一下有什么變化。
果然有一個新的條目,點擊View Changes按鈕可以查看詳細的更改。
Discard Changes操作:比如我們剛剛進行一項棘手的修改,并且我們的代碼很多,找起來很麻煩,我們后悔了,想恢復到最近的一個良好的版本,使用這個功能吧,很簡單,如下圖所示。
當代碼有修改后,菜單的Discard Changes才會可被點擊狀態。
接下來我們繼續給firstViewController添加一個方法,然后準備提交,看看那個對比修改的效果:
上圖清楚的展示了我們這次提交的版本所作的所有操作,左邊視圖是修改后的內容(也就是現在的版本),右邊視圖是之前的版本內容。中間的鏈接按鈕有兩個選項供我們選擇:
Dont`Commit 是這個區域的修改(添加)本次不提交,也就是說,現在的項目有這個修改的代碼,而git庫中不保存此次修改。
Discard Change是刪除這個區域的修改,也就是說,現在的項目沒有了修改的代碼,git庫中更新后也不會有這些代碼,相當于完全刪除。
另一項新功能介紹,由Xcode 4.5,允許你提交你的更改到一個特定的分支。
但是,且慢 - 什么是分支?
其實,相信與否,你已經在使用的一個分支。當它第一次創建時,你的項目關聯的一個分支,稱為“主”。由Xcode會自動創建這個分支,正如它的名字表明你的項目,是主要的分支。
“但是,什么是一個主要分支?”,你可能會問。嗯,好吧。來看看下面的圖片:
接下來,我們再此給viewcontroller添加一個方法,嘗試一下給把修改后代碼添加到git庫的一個分支中,具體添加方法如下圖所示。
添加成功后,你和我也一樣,迫不及待的想去Organizer中查看git庫的變化對嗎?好,看下圖。
我們在branch1欄下可以清楚的看到,系統在master主分支的基礎上,連同我們這次修改的版本一同添加到了分支庫中,很強大吧,這樣我們就可以把一些不確定的更改在分支中進行了,這樣萬一崩潰了,還有主分支可以恢復。
由于我們進行了一些錯誤的操作,導致當前代碼崩潰,修改起來費時費力,那么,讓我們就嘗試一下切換到之前的主分支代碼庫的版本中來吧。如下圖:
SwitchBranch可以很方便的讓我們在主和分支中切換。注意,切換后,相應的不同分支修改的代碼也會在項目中消失。
看完分支操作,大家可能還會想到,是否有合并的操作呢?我在一個分支中進行了大量的修改,然后發現這就是我想要的最終版本,可是我想把這些合并到主分支中來,該如何操作呢?
【注意:只有當我們創建分支庫后,并在項目中進行了某些修改(添加)操作后,菜單Merge才會生效】
成功合并后的效果一定是你想要的,在這里我就不再發圖展示了,只有自己親手嘗試了,才會明白,不要害怕嘗試,可以新創建一個Demo來測試。
接下來我再發一下另一個新奇的操作,當我們在工程進行某些修改后,不只是在提交時次才能看到對比修改內容,還有個地方可以給我們更直觀的展示:
這個時光軸真的很炫,不得不佩服apple的創新能力,具體使用效果,需要你自己來驗證。
最后發一張blame模式下的展示:
【end............】
好了,我已經進行了簡單的常用功能截圖介紹,有關更復雜和原理性的知識,我目前也不會,需要使用來驗證,有更新的收獲時再來這里更新吧。
總結
以上是生活随笔為你收集整理的ios使用自带git respository管理项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS CoreBluetooth 教程
- 下一篇: mac 键盘按键符号讲解