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