Git介紹(分支概念)

分支作用

開發軟體時,可能同時多人開發同一功能或修復錯誤,也可能有多個發佈版本的存在,需要針對每個版本進行維護,希望能同時進行數個功能的增加或除錯,這時需要將修改的流程個別紀錄,這就是分支的作用,各別分支不受其他分支的影響,所以在同一個數據庫裡可以同時進行多個不同的修改而不至於混亂。

為了讓開發者專注自己的任務,可以在主要分支建立自己專用的分支,這樣可以彼此不受影響,而完成任務的開發者,將自己分支的修改導入到主要分支,每次提交都會被紀錄,當發生問題時,更容易找到發生問題的地方。


Master分支

在數據庫進行最初的提交後,Git會建立一個名為master的分支,除非切換分支,否則之後的提交都會增加在master分支裡。


分支種類

分支主要可分為兩大類:1.integration分支 2.topic分支。

因為新的分支會建立在integration分支上,且integration分支是為了可以隨時建立發布版本的分支,所以保持穩定是很重要的,所以通常不直接在integration分支上修改程式碼。

topic分支是為了進行更改或增加功能所建立的分支,若同時進行多個任務時,習慣建立多個topic分支,而topic分支是從穩定的integration分支上建立的,完成任務後,要將topic分支合併回integration分支。


分支切換

在Git上以head代表當前分支最新的提交,一開始建立新的數據庫時,Git預設head指向master分支,我們可以移動head到其他分支上,執行切換分支後,工作目錄裡的檔案會根據切換到的分支,呈現該分支最後提交的內容,此時如果進行提交,則紀錄屬於切換後的分支。


分支合併

完成任務的topic分支,最終都會合併(merge)到integration分支,使用merge,可以合併多個歷史記錄,merge時主要可能遇到以下兩種情況:

1. 當topic分支要merge到integration分支時, integration分支在之前沒有更改過,那麼這個合併是非常簡單的,只要把topic分支移動到integration分支,就可以導入topic分支的內容,這樣的合併被稱為fast-forward合併。

2.當topic分支要merge到integration分支時, 有可能integration分支之前有更改過,這時候要把integration分支的修改內容,和topic分支的修改內容匯合起來,此時會產生一個合併提交,integration的位置會被更新到新建立的合併提交上。


回到首頁

回到Git教學


參考資料:

連猴子都能懂得GitHub入門指南