Git(四)Git的分支管理


一. 創建合並分支原理

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

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

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

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

 

Git創建一個分支很快,因為除了增加一個dev指針,改改HEAD的指向,工作區的文件都沒有任何變化!

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

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

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

二. 使用TortoiseGit實現分支管理

1)創建分支

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

 

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

2)合並分支

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

切換到master分支后還是原來的內容:

dev分支合並到master分支,當前分支為master。從右鍵菜單中選擇合並

 

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

三. 解決沖突

    兩個分支中編輯的內容都是相互獨立互不干擾的,那么如果在兩個分支中都對同一個文件進行編輯,然后再合並,就有可能會出現沖突。

例如在master分支中對test.txt進行編輯:加入一行 "第一次提交" ,然后提交到版本庫。

切換到dev分支,對test.txt進行編輯:加入一行 "第一次提交" ,然后提交到版本庫。

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

出現版本沖突。

沖突需要手動解決,如下圖解決完畢:

 

在沖突文件上單機右鍵選擇“解決沖突”菜單項:

 

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


免責聲明!

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



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