Git 的 Branch (分支)
什麼是 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 的反應比我想像中還聰明,尤其是衝突那邊,還會幫我們修改告知哪邊有問題,讓我們手動修改,以確保無誤。