Git學習之分支管理(四)

一、創建合併分支

在我們每次的提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master分支。HEAD指針嚴格來說不是指向提交,而是指向master,master纔是指向提交的,所以,HEAD指向的就是當前分支。

一開始的時候,master分支是一條線,Git用master指向最新的提交,再用HEAD指向master,就能確定當前分支,以及當前分支的提交點:

每次提交,master分支都會向前移動一步,這樣,隨着你不斷提交,master分支的線也越來越長。

當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:

在Git創建dev分支過程中只增加一個dev指針,改變HEAD的指向,工作區的文件都沒有任何變化!

但是從當前開始,對工作區的修改和提交就是針對dev分支了,比如新提交一次後,dev指針往前移動一步,而master指針不變:

假如我們在dev上的工作完成了,就可以把dev合併到master上。Git怎麼合併呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合併:

Git合併分支也只是改改指針,工作區內容也不變!合併完分支後,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉後,我們就剩下了一條master分支:

二、使用TortoiseGit管理分支

2.1創建分支

在本地倉庫文件夾中點擊右鍵,然後從菜單中選擇“創建分支”:

如果想創建完畢後直接切換到新分支可以勾選“切換到新分支”選項或者從菜單中選擇“切換/檢出”來切換分支:

2.2合併分支

分支切換到dev後就可以對工作區的文件進行修改,然後提交到dev分支原理的master分支不受影響。例如我們修改mytest.txt中的內容,然後提交到dev分支。

 

切換到master分支後還是原理的內容:

將dev分支的內容合併到master分支,當前分支爲master。從右鍵菜單中選擇“合併”:

再查看test.txt的內容就已經更新了:

三、解決衝突

兩個分支中編輯的內容都是相互獨立互不干擾的,那麼如果在兩個分支中都對同一個文件進行編輯,然後再合併,就有可能會出現衝突。例如在master分支中對test.txt進行編輯:

然後提交到版本庫。再切換到dev分支,對test.txt進行編輯之後提交到dev。

 

 

最後進行分支合併,例如將dev分支合併到master分支。需要先切換到master分支然後進行分支合併。

出現版本衝突,手動解決衝突。在衝突文件上單機右鍵選擇“解決衝突”菜單項:

 

 

把衝突解決完畢的文件提交到版本庫就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章