本文內(nèi)容要點:
分支是什么焰情?
創(chuàng)建分支
推送分支到遠程倉庫
合并分支
分支沖突解決
查看版本分支圖
刪除分支
多人協(xié)作
分支是什么?
分支可以理解為平行的幾條公路,公路之間互不干擾贤姆,從主分支建立幾個子分支,相當于公路的岔路口一樣并思,然后ABC三人各走一條路庐氮,互相之間誰也不干擾誰,最后到另外一個交叉路口時宋彼,三人就又可以碰面走到一起了弄砍。
分支在實際開發(fā)中的作用可以這樣理解:現(xiàn)在有ABC三人同時開發(fā)一個項目,A開發(fā)功能一输涕、B開發(fā)功能二音婶、C開發(fā)功能三,如果三人同時在同一個項目同一條分支上面開發(fā)的話莱坎,很容易造成互相之間文件沖突等困境衣式,對開發(fā)很不方便,這時我們就可以依賴Git來開啟三條分支檐什,A在A的分支里面做他自己的東西碴卧,B在B的分支里面做他的開發(fā),C也是類似這樣乃正,各做各的住册,最后當他們?nèi)齻€人的代碼功能都開發(fā)完畢后,再把他們做的分支進行合并瓮具,就是把功能一荧飞、二凡人、三都合并到一起,這樣整個項目就完成了叹阔,相互之間你不干擾我挠轴,我不干擾你,是不是感覺世界多么美好耳幢?
默認情況下岸晦,git會幫你自動建立一個master的分支,這個就是主分支帅掘,我們之前操作的代碼版本就都是這個分支上面操作的委煤,一般地master是作為最核心最重要的分支使用的,項目所有代碼都在里面修档。接下來我們開始學(xué)習(xí)如何創(chuàng)建更多的分支碧绞。
創(chuàng)建分支
使用TortoiseGit創(chuàng)建分支非常簡單:根目錄空白右鍵 > TortoiseGit > Create Branch...(創(chuàng)建分支),在對話框填寫分支英文名(Branch)和注釋(description)吱窝,其他選項默認讥邻,OK之后即可創(chuàng)建好
創(chuàng)建好之后,默認工作區(qū)間還是在master分支下面的院峡,需要切換分支時就可以切換到剛才建立的分支兴使,右鍵執(zhí)行:TortoiseGit > Switch/Checkout(切換分支)
切換好之后,提交的時候就會變成分支的名字了照激,這個時候提交就是提交到這個分支啦发魄。
注意:如果是多個團隊協(xié)作的時候,我本地創(chuàng)建好了分支并且推送到了遠程倉庫俩垃,但是其他的同事更新拉取遠程默認分支代碼的時候励幼,他的本地是沒有建立我的分支的,但是他可以看到我的遠程分支口柳,那么如果他需要進入我的分支苹粟,在本地倉庫建立一個分支的話,只要選擇遠程分支跃闹,進行切換嵌削,就自動在本地建立一個分支啦。
推送分支到遠程倉庫
我們創(chuàng)建好分支后望艺,這個時候分支的信息都還是在我本地倉庫的苛秕,那么我們只要對代碼進行commit(如果有編寫新代碼)和push后,遠程倉庫就會看到有分支了找默,操作和以前的推送master分支是一樣的想帅。
合并分支
我們對上面創(chuàng)建好的分支進行一些開發(fā)修改,然后提交保存后啡莉,接下來我們需要把這個分支的代碼合并到主分支master:
- 分支開發(fā)港准,我們這里修改test.txt文件,在里面加入了相關(guān)的文字咧欣,然后commit和push
切換為master分支(需要把其他分支合并到某個分支浅缸,這時就需要切換到此分支,如分支一要合并到分支二里魄咕,那么就要切換到分支二):
接著執(zhí)行:TortoiseGit > Merge...(合并)衩椒,然后選擇要合并的分支和填寫需要合并信息,OK之后哮兰,你會發(fā)現(xiàn)分支的代碼就過來啦毛萌。。喝滞。
分支沖突解決
當合并分支的時候阁将,往往都是不太順利的,特別是同一個文件被多個分支修改過的時候右遭,就會出現(xiàn)合并沖突了∽鲋眩現(xiàn)在,我再創(chuàng)建一條分支窘哈,接著分別切換到這兩條分支對應(yīng)修改這個test.txt的文件吹榴,然后再合并這個分支,結(jié)果如下:
這個錯誤的意思就是告訴你:Git想自動合并分支滚婉,但是這個test.txt的文件發(fā)生沖突了图筹,需要手工進行合并,點擊Resolve(解決)让腹,就會列出所有沖突的文件远剩,點OK之后,再一一去找到這些文件哨鸭,對應(yīng)的打開里面進行修改
打開沖突的代碼民宿,會發(fā)現(xiàn)里面Git把沖突的地方使用<<<<<<< HEAD=======>>>>>>> develop_shopingcart標識出來了,=======分隔開來的就是這主分支和develop_shopingcart的沖突代碼區(qū)分
手工修改后像鸡,去除標識代碼活鹰,然后進行commit和push提交保存即可。
查看版本分支圖
我們操作了這么多版本和分支信息只估,我們可以通過一個Git的分支圖形來查看版本分支結(jié)構(gòu)的志群,那樣更加直觀哦,執(zhí)行TortoiseGit > Revision Graph蛔钙,如下圖
以上的分支圖锌云,表示從v0.1分出了兩個分支,然后又合并到了master分支了吁脱。
刪除分支
分支功能開發(fā)完成后桑涎,或者是建立分支建立錯了彬向,如果我們不再需要了的話,可以刪除掉分支攻冷,具體如下操作:
目前遠程和本地分支情況如下二圖所示:
我現(xiàn)在要刪除develop_order分支娃胆,先通過上一步的查看版本分支圖(Revison Graph),打開后等曼,找到你想要刪除的分支里烦,右鍵如下:
Delete Branch/tag有三個選項:refs/heads/develop_order就是刪除本地分支,refs/remotes/origin/develop_order就刪除遠程倉庫分支禁谦,All就是本地和遠程都刪除胁黑。我們這里執(zhí)行All,都刪除州泊!確認后丧蘸,本地和遠程都刪除了,再也切換不了這個分支啦拥诡,耶触趴!
然后遠程和本地的分支狀態(tài)就是這樣了:
多人協(xié)作
工作中,大多數(shù)情況下都是多個哥們一塊來開發(fā)一個項目的渴肉,那么就需要Git這樣的軟件+碼云來實現(xiàn)代碼同步更新冗懦,從而實現(xiàn)協(xié)作。
通過前幾節(jié)教程和今天這節(jié)分支教程仇祭,我們應(yīng)該學(xué)會了如何創(chuàng)建版本倉庫披蕉,如何提交版本,如何推送到遠程倉庫……只有推送到遠程倉庫乌奇,其他的人才能拉取到你的代碼哦没讲。所以,多人協(xié)作需要碼云或者是Github這樣的第三方服務(wù)亦或是自己搭建服務(wù)器來實現(xiàn)代碼的共享倉庫礁苗。
接著我們稍微講解一下在碼云上面的代碼協(xié)作步驟爬凑,有需求的同學(xué)可以試一下,其他的用戶使用碼云也是類似我這幾節(jié)課所講解那樣使用的:
團隊成員各自在碼云注冊帳號
項目管理員在碼云建立項目试伙,初始化項目嘁信,設(shè)定好各個成員的分支,也可以在分支中設(shè)置各個成員的權(quán)限疏叨,一般地master分支由管理員控制潘靖,其他的人不能push修改這個分支。
項目管理員在碼云的項目管理面板中設(shè)置開發(fā)成員蚤蔓,并且可以設(shè)定各個成員的權(quán)限卦溢,如果是各個成員都使用SSH訪問的話,需要添加大家的SSH公鑰到里面才能訪問
各個成員安裝Git相關(guān)的軟件和環(huán)境,然后設(shè)置好相關(guān)的訪問代碼庫的方式单寂、用戶名和密鑰等
各個成員通過項目地址拉取項目源碼贬芥,然后切換到自己的分支,那么這里面的代碼就是屬于你自己的開發(fā)分支了宣决。
最后各個成員在各自分支開發(fā)好之后誓军,管理員進行分支合并,合并完成后提交到遠程保存疲扎,這個時候就可以打標簽,發(fā)布新版本啦捷雕!
部分操作如下圖所示:
小結(jié)
針對小白入門Git+碼云的操作就到此結(jié)束了椒丧,通過這幾節(jié)課程我們可以了解到Git+TortoiseGit的使用,有了這些技能救巷,我們做項目的開發(fā)以及和團隊的協(xié)作會更加的順暢啦壶熏。
可以從中看到,我們很多的操作都是在項目的根目錄下浦译,進行右鍵選擇TortoiseGit里面對應(yīng)的操作來進行操作的棒假,某些需要針對某個文件的操作在選中文件后,那么也是右鍵選擇TortoiseGit里面對應(yīng)的操作來進行操作的精盅;
團隊的合作帽哑,我們一定要養(yǎng)成習(xí)慣每天先更新拉取遠程代碼(pull),然后每天提交推送自己的代碼(commit+push)叹俏。
這幾節(jié)課程針對的主要是windows下的用戶妻枕,實際上在mac上面的使用也是類似的,只是安裝的軟件不太一樣而已粘驰,大家可以嘗試一下屡谐,后續(xù)我們會繼續(xù)推出和Git相關(guān)的在Mac上的使用和在Linux服務(wù)器上使用Git更新來發(fā)布部署等相關(guān)教程,敬請期待蝌数,感謝你的學(xué)習(xí)愕掏,和你一起,期待再次與你相見6ド 饵撑!