這個(gè)東西就像是SVN一樣,團(tuán)隊(duì)操作词渤。
這篇教程需要懂得SVN原理操作,才可以跟我繼續(xù)學(xué)下去串绩。
分支在實(shí)際中有什么用呢缺虐?假設(shè)你準(zhǔn)備開發(fā)一個(gè)新功能,但是需要兩周才能完成礁凡,第一周你寫了50%的代碼高氮,如果立刻提交,由于代碼還沒寫完顷牌,不完整的代碼庫(kù)會(huì)導(dǎo)致別人不能干活了剪芍。
如果等代碼全部寫完再一次提交,又存在丟失每天進(jìn)度的巨大風(fēng)險(xiǎn)】呃叮現(xiàn)在有了分支罪裹,就不用怕了。你創(chuàng)建了一個(gè)屬于你自己的分支运挫,別人看不到状共,還繼續(xù)在原來(lái)的分支上正常工作,而你在自己的分支上干活谁帕,想提交就提交峡继,直到開發(fā)完畢后,再一次性合并到原來(lái)的分支上匈挖,這樣碾牌,既安全康愤,又不影響別人工作。
熟統(tǒng)來(lái)說(shuō):1個(gè)人擁有一個(gè)分支舶吗,而另外一個(gè)人也擁有一個(gè)分支征冷,兩個(gè)人工作流程不一樣。
開始實(shí)戰(zhàn) 首先裤翩,我們創(chuàng)建dev分支资盅,然后切換到dev分支:
git checkout -b devA
-b是創(chuàng)建并且切換到devA分支上
開始工作
并且提交 和 切換到temp另外一個(gè)分支上去
這時(shí)候调榄,你再打開 ’老司機(jī)的~~~' .txt文件踊赠,發(fā)現(xiàn)是這樣子的。
此時(shí)應(yīng)該此處比較好玩一點(diǎn)了每庆。 因?yàn)槟愎ぷ鞯姆种莾纱a回事筐带,他工作他的,我工作我的缤灵,互不相干伦籍!
合并分支
在上面我們說(shuō)了,每個(gè)人工作他自己的事情腮出,但是始終重要以一個(gè)文件來(lái)作為最終文件帖鸦,而這個(gè)’最終文件’ 指的就是 合并分支 (主分支Master) , 最上面那張圖可以作為代表作(我自己編寫的~)
我們繼續(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
最終文件: