Git之rebase操作分享

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

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

1、控制版本

最核心的區(qū)別,GIT是分布式控制版本,而SVN不是。

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

2、存儲方式

GIT把內容按元數(shù)據(jù)方式存儲,而SVN是按文件。

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

3、分支

GIT分支和SVN的分支不同。

分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。然而,處理GIT的分支卻是相當?shù)暮唵魏陀腥?。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發(fā)現(xiàn)未被合并的分支,你能簡單而快捷的合并這些文件。

4、rebase命令的操作

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

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

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

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

此時test分支的版本如下:

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

如上圖所示,當前主分支有新的代碼提交,本地分支開發(fā)人員每天也會有新的代碼提交。但是往往一個功能模塊的開發(fā)是需要好幾天才能完成的,故一個功能點往往會產生多個log,關于如何合并多個提交log,后面會講述(詳見步驟8)。接下來,在本地開發(fā)人員進行功能開發(fā)結束后,如下圖所示:

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

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

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

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

git

rebase -i 9b67ef73b1225777153aad76de0dee444fa9d892

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

如下所示:

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

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

希望筆者對此命令的一些心得體會可以幫助更多的開發(fā)人員理解GIT,可以更好的上手應用GIT,有更多關于GIT的心得體會,歡迎與筆者探討。

本文作者:張金周(點融黑幫),現(xiàn)任點融FinTech團隊后端開發(fā)工程師,江西理工大學計算機專業(yè)。工作三年,兩年外企經驗,平時研究后端框架,喜歡學習前端技術以及新技術。業(yè)余時間喜歡打羽毛球,看電影。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容