更新時間:2022年08月23日16時59分 來源:傳智教育 瀏覽次數(shù):
分支就是科幻電影里面的平行宇宙,當你正在電腦前努力學(xué)習(xí)Git的時候,另一個你正在另一個平行宇宙里努力學(xué)習(xí)SVN。如果兩個平行宇宙互不干擾,那對現(xiàn)在的你也沒啥影響。
不過,在某個時間點,兩個平行宇宙合并了,結(jié)果,你既學(xué)會了Git又學(xué)會了SVN!
在進行多人協(xié)作開發(fā)的時候,為了防止互相干擾,提高協(xié)同開發(fā)的體驗,建議每個開發(fā)者都基于分支進行項目功能的開發(fā),例如:
在初始化本地Git 倉庫的時候,Git 默認已經(jīng)幫我們創(chuàng)建了一個名字叫做master的分支。通常我們把這個master 分支叫做主分支。
在實際工作中,master 主分支的作用是:用來保存和記錄整個項目已完成的功能代碼。因此,不允許程序員直接在master 分支上修改代碼,因為這樣做的風(fēng)險太高,容易導(dǎo)致整個項目崩潰。
由于程序員不能直接在master 分支上進行功能的開發(fā),所以就有了功能分支的概念。
功能分支指的是專門用來開發(fā)新功能的分支,它是臨時從master 主分支上分叉出來的,當新功能開發(fā)且測試完畢后,最終需要合并到master 主分支上,如圖所示:
使用如下的命令,可以查看當前Git 倉庫中所有的分支列表:
運行的結(jié)果如下所示:
注意:分支名字前面的*號表示當前所處的分支。
使用如下的命令,可以基于當前分支,創(chuàng)建一個新的分支,此時,新分支中的代碼和當前分支完全一樣:
圖示如下:
使用如下的命令,可以切換到指定的分支上進行開發(fā):
圖示如下:
使用如下的命令,可以創(chuàng)建指定名稱的新分支,并立即切換到新分支上:
圖示如下:
圖示如下:
注意:
"git checkout -b 分支名稱" 是下面兩條命令的簡寫形式:
①git branch 分支名稱
②git checkout 分支名稱
功能分支的代碼開發(fā)測試完畢之后,可以使用如下的命令,將完成后的代碼合并到master 主分支上:
圖示如下:
合并分支時的注意點:
假設(shè)要把C 分支的代碼合并到A 分支,則必須先切換到A 分支上,再運行g(shù)it merge 命令,來合并C 分支!
當把功能分支的代碼合并到master 主分支上以后,就可以使用如下的命令,刪除對應(yīng)的功能分支:
圖示如下:
如果在兩個不同的分支中,對同一個文件進行了不同的修改,Git 就沒法干凈的合并它們。此時,我們需要打開這些包含沖突的文件然后手動解決沖突。