這個(gè)東西就像是SVN一樣,團(tuán)隊(duì)操作。
這篇教程需要懂得SVN原理操作,才可以跟我繼續(xù)學(xué)下去。
分支在實(shí)際中有什么用呢?假設(shè)你準(zhǔn)備開(kāi)發(fā)一個(gè)新功能,但是需要兩周才能完成,第一周你寫(xiě)了50%的代碼,如果立刻提交,由于代碼還沒(méi)寫(xiě)完,不完整的代碼庫(kù)會(huì)導(dǎo)致別人不能干活了。
如果等代碼全部寫(xiě)完再一次提交,又存在丟失每天進(jìn)度的巨大風(fēng)險(xiǎn)。現(xiàn)在有了分支,就不用怕了。你創(chuàng)建了一個(gè)屬于你自己的分支,別人看不到,還繼續(xù)在原來(lái)的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到開(kāi)發(fā)完畢后,再一次性合并到原來(lái)的分支上,這樣,既安全,又不影響別人工作。
熟統(tǒng)來(lái)說(shuō):1個(gè)人擁有一個(gè)分支,而另外一個(gè)人也擁有一個(gè)分支,兩個(gè)人工作流程不一樣。
開(kāi)始實(shí)戰(zhàn) 首先,我們創(chuàng)建dev分支,然后切換到dev分支:
git checkout -b devA
-b是創(chuàng)建并且切換到devA分支上
開(kāi)始工作
并且提交 和 切換到temp另外一個(gè)分支上去
這時(shí)候,你再打開(kāi) ’老司機(jī)的~~~' .txt文件,發(fā)現(xiàn)是這樣子的。
此時(shí)應(yīng)該此處比較好玩一點(diǎn)了。 因?yàn)槟愎ぷ鞯姆种莾纱a回事,他工作他的,我工作我的,互不相干!
合并分支
在上面我們說(shuō)了,每個(gè)人工作他自己的事情,但是始終重要以一個(gè)文件來(lái)作為最終文件,而這個(gè)’最終文件’ 指的就是 合并分支 (主分支Master) , 最上面那張圖可以作為代表作(我自己編寫(xiě)的~)
我們繼續(xù)往下敲代碼,你會(huì)發(fā)現(xiàn),你依然存留在temp分支上(并且那個(gè).txt文件我已經(jīng)改過(guò)了),這下兩個(gè)文件都有著不同的內(nèi)容,來(lái)看如下:
這時(shí)候需要把兩個(gè)分支合并到我們的Master分支
git merge dev
Oh MY GOD! 重點(diǎn)來(lái)了(雖說(shuō)講了這么多),這種原因就是沖突原因(Git無(wú)法執(zhí)行“快速合并”)
趕緊解決方法: 看到最底下的no changes.....了么? 這就是git告訴我們要自己(A技術(shù),B技術(shù),C技術(shù)三個(gè)人自己去協(xié)商好,再合并修改再上傳上去)
這種原因的存在一般是:合并別人的東西過(guò)來(lái),肯定沖突阿(因?yàn)楦惚镜夭灰粯樱@時(shí)候就得需要去把你的隊(duì)友拉過(guò)來(lái),一起合并,然后再提交你的東西,如下圖: 以上你如果和豬隊(duì)友結(jié)合之后,再重新指定分支到當(dāng)前分支
git checkout master
git merge temp
git命令 最終文件:
更多建議: