Git之rebase操作分享

進入點融之前,筆者的版本控制一直用的是SVN。在加入點融后,接觸到了GIT,也使筆者有機會學習到更為廣泛應用的GIT版本控制。

通過同事幫助和自主學習,以及在一些網絡上學習到Git相關知識的基礎之上,筆者將從大的方面來闡述一下GIT與SVN的區別。

124码报迷图:1、控制版本

码报开奖结果本期 www.iwqgw.icu 最核心的區別,GIT是分布式控制版本,而SVN不是。

GIT跟SVN一樣有自己的集中式版本庫或服務器,但是GIT更傾向于被使用于分布式模式,也就是每個開發人員從中心版本庫/服務器上checkout代碼后會在自己的機器上克隆一個自己的版本庫。舉個例子,如果你被困在一個不能連接網絡的地方時,如飛機上,地下室,電梯里等,你仍然能夠提交文件,查看歷史版本記錄,創建項目分支等等。

2、存儲方式

GIT把內容按元數據方式存儲,而SVN是按文件。

所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為.git目錄是處于你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標簽,分支,版本記錄等。

3、分支

GIT分支和SVN的分支不同。

分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。然而,處理GIT的分支卻是相當的簡單和有趣。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發現未被合并的分支,你能簡單而快捷的合并這些文件。

4、rebase命令的操作

言歸正傳,接下來,本文將主要介紹的rebase命令的操作。

在實際項目開發過程當中,開發人員都會從遠程主分支克隆代碼到本地,然后在此基礎之上,進行自己的功能開發。在本地開發的同時,遠程主分支也會不斷有其他同事開發的功能被push上去。在本地開發的代碼,可以通過fetch,然后在merge提交到本地或者直接pull到本地來做作為本地同步遠程代碼的目的,當然在此筆者主要想講述的是如何通過統一遠程和本地的代碼的log,從而神不知鬼不覺的去同步代碼。

我們來具體演示一下rebase的用法。

首先克隆遠程主分支到本地主分支(master),然后創建自己的分支(test),具體demo如下圖所示:

2231313-8ae106470648e304.png

此時test分支的版本如下:

2231313-73ed58d53246e2b4.jpeg

主分支master,在其他同事的不斷push后,現在的版本如下:

2231313-7efd46772b566347.jpeg

如上圖所示,當前主分支有新的代碼提交,本地分支開發人員每天也會有新的代碼提交。但是往往一個功能??櫚目⑹切枰眉柑觳拍芡瓿傻?,故一個功能點往往會產生多個log,關于如何合并多個提交log,后面會講述(詳見步驟8)。接下來,在本地開發人員進行功能開發結束后,如下圖所示:

2231313-7ed70f58869189cf.jpeg

如上圖所示,可以看到開發人員在本地分支提交了3次代碼,完成了功能開發,接下來就要進行rebase操作,如下圖所示:

2231313-293d63c8870e2cc5.jpeg

在rebase過程當中可能需要處理一些沖突,具體操作如下圖所示:

2231313-422b668f6cb9d509.jpeg

2231313-7d83484855ed3245.jpeg

2231313-1db6a1da24459fff.jpeg

如上圖所示,rebase結束,具體結果如下所示:

2231313-6b9fd16c568e8668.jpeg

接下來主要看一下,如果合并分支多次提交log,運行命令如下:

git

rebase -i 9b67ef73b1225777153aad76de0dee444fa9d892

會跳出vim編輯模式,修改除第一個外的后面幾個pick為s或者squash,將log改為:test合并之前提交的1,2,3;

如下所示:

2231313-0ee1c9830a8fced3.jpeg

2231313-92fca3d09b12733a.jpeg

2231313-b0aea028ac8b4c6f.png

到此合并結束,具體結果如下:

2231313-93c53c2e63914c41.jpeg

至此,這個rebase基本功能用法就介紹完畢了。在操作過程當中,可能要解決一些沖突,merge一些代碼,提交之后,才可以繼續操作。一般情況下,敲入命令:git status,查看當前版本下的提示情況之后,再進行相應操作,就可以了。

來源:CocoChina

上一篇: 談談iOS內存泄露

下一篇: 專訪搜狗輸入法 iOS 版開發負責人李騰杰:第三方輸入法開發與優化實踐

分享到: 更多
三分赛车计划软件免费版 差旅费报销单电子版 福彩网址一分快3 老版本128棋牌 龙虎和时时彩押注口诀 北京时时结果查询 全天pk10计划两期版 8码怎么倍投 创造与魔法pt是什么意思 幸运pk10快艇在线直播 玩足彩月入上万的人多吗 飞艇一期计划软件 app 21点游戏推荐 棋牌现金二八杠官网 天津时时开奖趋势 助赢幸运飞艇资料计划软件