八 、分支管理(一)
先列出以此小結(jié)常用命令:
git branch #查看分支
git branch + 名 #創(chuàng)建分支
git checkout + 名 #切換分支
git checkout -b + 名 #創(chuàng)建并切換到此分支(可以記為切換到新創(chuàng)建的分支)
git merge #合并某分支到目前的分支
git branch -d + 名 #刪除分支(可以記為delete開(kāi)頭的d)
8.1 分支的基本概念
分支有什么用呢胰苏?假如你現(xiàn)在跟別人做項(xiàng)目泳叠,你和另一個(gè)人同時(shí)開(kāi)發(fā)此軟件的不同功能麻裁,假設(shè)他開(kāi)發(fā)功能1燎潮,你開(kāi)發(fā)功能2硫眨,而你開(kāi)發(fā)的功能2才僅僅完成15%末融,此時(shí)你需要第二天再繼續(xù)工作节仿,你倆可以先各自創(chuàng)建一個(gè)分支(分支互不影響晤锥,也就是你寫(xiě)的代碼和另一位伙伴寫(xiě)的代碼并不沖突),然后他開(kāi)發(fā)完成后將自己的分支與主分支(你們的總工程)合并廊宪,就可以實(shí)現(xiàn)迭代開(kāi)發(fā)的一個(gè)操作矾瘾,而你的分支因?yàn)闆](méi)有開(kāi)發(fā)完,可以先保存著箭启,等開(kāi)發(fā)完成再合并到主分支壕翩。是不是很淺顯易懂呢 o(∩_∩)o 。
我們之前做的操作都是在一個(gè)主分支master基礎(chǔ)上進(jìn)行的傅寡,想象一下放妈,HEAD指向master北救,master指向提交即圖中的節(jié)點(diǎn),提交即是增加分支節(jié)點(diǎn)芜抒。
而增加新的分支是什么呢珍策?可以把master和其他新的分支比作是指針,master指向這個(gè)節(jié)點(diǎn)的指針宅倒,而新增的分支指針則指向新的節(jié)點(diǎn)攘宙。
實(shí)際操作時(shí),是先將新指針指向master同一個(gè)節(jié)點(diǎn)拐迁,然后HEAD(可看為頭節(jié)點(diǎn))指向新的節(jié)點(diǎn)蹭劈,如下圖:
然后提交后,將新的指針指向新的分支:
8.2 代碼操作
對(duì)開(kāi)頭的假設(shè)進(jìn)行操作
- 創(chuàng)建兩個(gè)分支dev1和dev2线召,你的分支是dev1链方,小伙伴的分支是dev2
git branch dev1
git branch dev2
- 你先保存你剛寫(xiě)好的文件,先切換到你的分支
git checkout dev1
接著add文件并且commit后就會(huì)將新創(chuàng)建的dev1指針指向新的一個(gè)節(jié)點(diǎn)即一個(gè)提交
此時(shí)切換到原來(lái)master分支灶搜,即使得HEAD指向master:
git checkout master
- 好了,你的15%代碼就放這吧工窍,明天再接著寫(xiě)割卖,接下來(lái)你的小伙伴進(jìn)行操作,跟你一開(kāi)始同樣的操作:
git checkout dev2
- 然后add并commit
仔細(xì)思考后你的小伙伴覺(jué)得功能已經(jīng)挺好的了患雏,不需要回改鹏溯,因此可以和主分支合并啦。
git checkout master
git merge dev2
這樣第一個(gè)功能就迭代成功啦淹仑,你的小伙伴合并完成后丙挽,就不需要這個(gè)指針了,可以刪除了:
git branch -d dev2
(以上如有問(wèn)題匀借,不吝賜教颜阐,真心希望你的批評(píng)指正。)
(未完待續(xù))