git分支的創建與分支之間合並的底層原理


開發一個版本,采用的發布流程:

(1).從master的最新代碼拉取一個開發分支,在上面進行開發(這里假設開發分支為dev)

(2).在開發分支上不斷地進行提交版本,期間,master也會有因為其他版本上線而不停有版本合並

(3).要發布的時候,把master代碼重新合一遍到dev分支

(4).發布完成了,把dev的代碼合到master


1.什么是分支

分支是一個commit對象鏈:一條工作記錄線


git每一次提交版本,都會在該版本上存一個字段parent,記錄的是上一個提交的版本號,這樣就可以從一個提交的快照里拿到之前所有提交過的記錄

2.新建分支是如何操作的

先了解2個重要的概念——HEAD和master:HEAD指向的就是當前分支(某個時刻你所處的分支),master指向提交

(1)創建分支之前,HEAD指向master

(2)創建分支dev,HEAD指針指向dev

與svn不同的是,svn創建分支會把全部內容拷貝一份,git創建分支只會創建一個指針

 (3)開發的過程中,如果我們提交了代碼,則指針情況是


(4)這個時候,假設master沒有新的內容,而你的版本要發布了,則不需要從master上合代碼到dev,發版完畢以后,要把dev分支的內容合到master,指針情況是

這種合並我們叫做fast-forward(快進,如果可能,合並分支git會使用這種模式,除非再合並時加上 --no-ff參數,這樣就會多出一個commit_id)

(5)在我們要發版的情況下,一般的情況是,master有新提交,我們自己也有提交在上面,所以,一般的示意圖是

(6)把master合到dev,准備發版(假設沒有沖突,有沖突先解決)


(7)發布完成,代碼從dev再合到master,見步驟(4)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM