Git 的 Branch (分支)

Hugh's Programming life
3 min readApr 16, 2019

--

什麼是 Branch?

Branch 是分支的意思。

幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。在很多版本控制系統中,這是個昂貴的過程,常常需要建立一個原始程式碼目錄的完整副本,對大型專案來說會花費很長時間。

有人把 Git 的分支模型稱為“必殺技特性”,而正是因為它,將 Git 從版本控制系統家族裡區分出來。Git 有何特別之處呢?Git 的分支可謂是難以置信的羽量級,它的新增操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統不同,Git 鼓勵在工作流程中頻繁使用分支與合併,哪怕一天之內進行許多次都沒有關係。理解分支的概念並熟練運用後,你才會意識到為什麼 Git 是一個如此強大而獨特的工具,並從此真正改變你的開發方式。 取自:git-scm

在分支之前都是線性開發,這樣會導致開發不易,例如說,開發新功能當中,臨時要維護修 bug,這時候就只能直接改開發中的版本。有了 branch 之後,就可以開發新功能當中,拿穩定版本來修 bug,同時新功能也可以繼續開發下去,最後再將兩個版本合併即可。

這也可以來讓大家分工去做一個專案。

相關指令

git branch -v:可以查看最後一個 commit 的版本,包含分支

git branch new-feature:新增分支"new-feature"

git branch -d:-d就是 delete 的意思

git checkout branch-name:切到新的分支,類似切資料夾的方式。

如何合併 branch

git merge new-feature:把 new-feature 合併進來

git 在合併的時候,如果沒有衝突的情況下,會很直接將兩邊最新的檔案合併在一起。

版本衝突如何解決

合併的時候,如果衝突了,就會顯示 conflict,那就必須要手動修改,打開之後會顯示如下:

<<<<<<< HEAD
當前內容
=======
衝突內容
>>>>>>> 要合併的分支名稱(產生衝突的分支名稱)

所以就要手動修改之後,將< = > 及同排內容 刪除

有可能有很多衝突,就必須要一個一個修改。

修改完成之後,就可以直接 commit 了。

心得:

在這邊可以理解到,為什麼會說 Git 是很好用的系統。這邊學到的內容 Git 的反應比我想像中還聰明,尤其是衝突那邊,還會幫我們修改告知哪邊有問題,讓我們手動修改,以確保無誤。

--

--

Hugh's Programming life
Hugh's Programming life

Written by Hugh's Programming life

我是前端兼後端工程師,主要在前端開發,包括 React、Node.js 以及相關的框架和技術。之前曾擔任化工工程師的職位,然而對電腦科技一直抱有濃厚的熱情。後來,我參加了轉職課程並開設這個部落格紀錄我的學習過程。於2020年轉職成功後,我一直持續精進技能、擴展技術範疇跟各種對人生有正面意義的學習,以增加我的工作能力。

No responses yet