概念一覽
分支的主要作用就是在現(xiàn)有代碼的基礎(chǔ)上開辟一個分叉口,使得代碼可以在主干線和分支線上同時進(jìn)行開發(fā),且相互之間不會影響。分支的工作原理如下圖:

分支工作圖
你也許會有疑惑,為什么需要建立分支呢?只在主干線上進(jìn)行開發(fā)不是挺好的嗎?沒錯,通常情況下,只在主干線上進(jìn)行開發(fā)是完全沒有問題的。不過,一旦涉及發(fā)布版本的情況,如果不 建立分支的話,你就會非常地頭疼。
舉個簡單的例子吧,比如說你們公司研發(fā)了一款不錯的軟件, 最近剛剛完成,并推出了 1.0版本。但是領(lǐng)導(dǎo)是不會讓你們閑著的,馬上提出了新的需求,讓你們投入到 1.1版本的開發(fā)工作當(dāng)中。過了幾個星期,1.1版本的功能已經(jīng)完成了一半,但是這個時候突然有用戶反饋,之前上線的 1.0 版本發(fā)現(xiàn)了幾個重大的 bug,嚴(yán)重影響軟件的正常使用。領(lǐng)導(dǎo)也相當(dāng)重視這個問題,要求你們立刻修復(fù)這些 bug,并對 1.0 版本進(jìn)行更新,但這個時候你就 非常為難了,你會發(fā)現(xiàn)根本沒法去修復(fù)。因?yàn)楝F(xiàn)在 1.1 版本已經(jīng)開發(fā)一半了,如果在現(xiàn)有代碼的 基礎(chǔ)上修復(fù)這些 bug,那么更新的 1.0 版本將會帶有一半 1.1 版本的功能! 進(jìn)退兩難了是不是?
但是如果你使用了分支的話,就完全不會存在這個讓人頭疼的問題。你只需要在發(fā)布 1.0 版本的時候建立一個分支,然后在主干線上繼續(xù)開發(fā) 1.1 版本的功能。當(dāng)在 1.0 版本上發(fā)現(xiàn)任何 bug 的時候,就在分支線上進(jìn)行修改,然后發(fā)布新的 1.0版本,并記得將修改后的代碼合并到主干線上。這樣的話,不僅可以輕松解決 1.0 版本存在的 bug,而且保證了主干線 上的代碼也已經(jīng)修復(fù)了這些 bug,當(dāng) 1.1 版本發(fā)布時,就不會有同樣的 bug存在了。 說了這么多,相信你也已經(jīng)意識到分支的重要性了,那么我們來看一下如何在 Git中 操作分支吧。
查看分支
分支的英文是 branch,如果想要查看當(dāng)前的版本庫當(dāng)中有哪些分支,可以使用
git branch
這個命令,如下圖:

查看分支
當(dāng)前項(xiàng)目還未創(chuàng)建過分支,因此只有一個main分支存在,也就是主干線
創(chuàng)建分支
git branch two
這樣就創(chuàng)建了一個名為two的分支,再次使用git branch就可以查看當(dāng)前有哪些分支了

創(chuàng)建分支
這時候可以看到main分支上有一個“ * ”,說明目前我們的代碼是在main分支上。
切換分支
git checkout two
使用該命令就可以切換到two分支上了,如下圖:

切換分支
在分支上提交代碼
切換到two分支后,可以加幾句注釋或代碼,即改變本地文件,然后使用
git add .
git commit -m "備注"
推送代碼的時候需要注意了,在分支上推送代碼需要使用
git push origin 分支名

分支提代碼
通過分支提交代碼后,這些代碼只存在于對應(yīng)的分支上,當(dāng)git checkout main切換到主分支后,你就會發(fā)現(xiàn)你提交的分支代碼都沒有了,對比如下:
分支上的代碼

分支上
切換到主分支后

切換分支后
代碼合并
分支上的代碼已經(jīng)提交上去了,那么切換回主分支后,我們怎么合并代碼呢?可以使用這個命令
git merge 分支名
先切換回主分支git checkout main

合并分支代碼
這個時候,分支上的代碼也就合并到主干上了

合并分支后
最后使用git push推送至遠(yuǎn)程倉庫,merge合并后一定要push同步到遠(yuǎn)程倉庫
刪除分支
分支使用完之后,可以使用
git branch -D 分支名
刪除分支后,再使用git branch后,如下圖:

刪除分支