? ? ? 其實(shí)說到Git和Cocoapods我相信對于大家而言都是耳熟能詳?shù)膬蓚€(gè)工具了,幾乎沒有人會(huì)說我其實(shí)還沒用過這類的話吧嚷节。沒錯(cuò)索昂,我們知道git add.、commit --m俺夕、git push,我們也知道pod init裳凸、pod search AFN、pod install劝贸,但是你真的知道它們的機(jī)制嗎姨谷?
?????? 好比習(xí)武一樣,我們只會(huì)武功的招式你一樣成為不了高手映九,因?yàn)槟銢]有內(nèi)功心法梦湘,你依舊只是個(gè)菜鳥,我們在開發(fā)這條道路上面也一樣件甥,你只知道怎么用捌议,或許你可以在開發(fā)中得心應(yīng)手,但是你永遠(yuǎn)深入不了引有,因?yàn)槟銢]有深入思考瓣颅。
一. 使用Git的遠(yuǎn)程代碼倉庫托管的兩種方式
?????? OK,我們現(xiàn)在來通過一個(gè)案例來展示遠(yuǎn)程代碼倉庫托管的兩種方式,我們需要把把本地代碼倉庫的代碼提交到我們遠(yuǎn)程代碼倉庫譬正。
?1.直接通過clone遠(yuǎn)程代碼倉庫生成一個(gè)本地代碼倉庫
? 首先來創(chuàng)建一個(gè)遠(yuǎn)程代碼倉庫 ?????
在這里我選擇的是碼市宫补,當(dāng)然我們還可以使用GitHub, OSChina等等
打開我們的終端檬姥,使用git clone將遠(yuǎn)程代碼倉庫克隆到本地
然后我們來了解一下本地代碼倉庫的結(jié)構(gòu)
緊接著我們可以在clone的代碼倉庫中給工作區(qū)添加我們的代碼,此時(shí)我們的代碼都在工作區(qū)中粉怕,如果代碼有修改的話此時(shí)使用git status可以看到修改過的文件是紅色的健民,當(dāng)我們使用git add .,我們的修改過的代碼會(huì)被提交到暫緩區(qū)贫贝, 此時(shí)使用git status可以看到修改過的文件是綠色的秉犹,最后我們使用git commit -m '提交日志’,此時(shí)我們的代碼就被提交到本地代碼倉庫的master分支稚晚。
然后將提交到本地代碼倉庫master分支上面的代碼使用git push提交到遠(yuǎn)程倉庫的master分支上崇堵。
這樣我們第一種方式就已經(jīng)演示完成了。
2. 本地創(chuàng)建的代碼倉庫和遠(yuǎn)程代碼倉庫進(jìn)行鏈接
首先我們在本地創(chuàng)建一個(gè)代碼倉庫
然后我們隨意在本地代碼倉庫創(chuàng)建一點(diǎn)東西
然后我們就可以鏈接本地代碼倉庫和遠(yuǎn)程代碼倉庫了
此時(shí)我們可以試著提交一下我們的代碼到遠(yuǎn)程代碼倉庫我們來看看會(huì)發(fā)生什么事情
出現(xiàn)這個(gè)提示很正常因?yàn)楝F(xiàn)在我們的本地代碼倉庫和遠(yuǎn)程代碼倉庫里地東西是沒有同步的蜈彼,類似于我們在使用svn時(shí)候的代碼沖突一個(gè)道理筑辨。那么按照正常的思路來講我們有兩種方式可以解決這個(gè)問題。
第一種幸逆,我們可以使用git pull orgin master將遠(yuǎn)程代碼倉庫的內(nèi)容獲取到本地來棍辕,然后再將本地代碼倉庫內(nèi)容提交本地并且推送到遠(yuǎn)程代碼倉庫中。
此時(shí)遠(yuǎn)程代碼倉庫的內(nèi)容已經(jīng)獲取到本地代碼倉庫了还绘,我們直接本地提交推送到遠(yuǎn)程代碼倉庫(git push origin? master)就好了
第二種楚昭,我們可以在本地提交代碼之后在獲取本地遠(yuǎn)程代碼倉庫的內(nèi)容
我們發(fā)現(xiàn)我們本地代碼倉庫并沒有獲取到遠(yuǎn)程代碼倉庫的東西,而且還出了報(bào)錯(cuò)提示
這是什么原因呢拍顷,其實(shí)是因?yàn)槲覀冊诒镜靥峤贿^代碼抚太,本地代碼倉庫就已經(jīng)有了一個(gè)本地版本信息,而此時(shí)遠(yuǎn)程代碼倉庫并沒有這樣一個(gè)版本信息昔案,這樣和我們代碼沖突是一個(gè)道理尿贫,所以版本信息也是需要同步到遠(yuǎn)程代碼倉庫的。
此時(shí)我們使用git pull --rebase origin master將版本信息也同時(shí)獲取一下就可以了
此時(shí)我們直接推送到遠(yuǎn)程代碼倉庫就可以了
二.給代碼打標(biāo)簽刪除標(biāo)簽
為何要給代碼打標(biāo)簽踏揣,我給大家畫一張圖就明白了
一般來說我們提交代碼到代碼倉庫以后庆亡,會(huì)自動(dòng)生成一個(gè)版本號,它其實(shí)是40位的哈希值捞稿,我們很難根據(jù)這個(gè)定位到我們的代碼
所以我們需要打上標(biāo)簽又谋,讓它與我們的代碼綁定,我們能夠通過標(biāo)簽快速找到我們的代碼
我們首先需要在本地給我們的代碼打上一個(gè)標(biāo)簽
然后我們將標(biāo)簽push到遠(yuǎn)程倉庫可以使用 —tags 一次性提交所有標(biāo)簽娱局,也可以使用 origin 版本號
此時(shí)我們的遠(yuǎn)程倉庫就已經(jīng)和我們的對應(yīng)版本的代碼綁定好了
現(xiàn)在我們看看怎么刪除標(biāo)簽對應(yīng)的代碼版本
首先把本地的標(biāo)簽給刪除掉
然后把遠(yuǎn)程倉庫中的標(biāo)簽刪除掉
這樣的話我們就通過了這樣一個(gè)小案例來簡單了回顧了我們git的基本使用彰亥。