2021-05-12 14:32:11
Git 分支的建立、合併、管理和刪除
幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。在很多版本控制系統中,這是個昂貴的過程,常常需要建立一個原始碼目錄的完整副本,對大型專案來說會花費很長時間。
有人把 Git 的分支模型稱為“必殺技特性”,而正是因為它,將 Git 從版本控制系統家族裡區分出來。Git 有何特別之處呢?Git 的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統不同,Git 鼓勵在工作流程中頻繁使用分支與合併,哪怕一天之內進行許多次都沒有關係。理解分支的概念並熟練運用後,你才會意識到為什麼 Git 是一個如此強大而獨特的工具,並從此真正改變你的開發方式。
了解分支
如果想實現多人共同作業、劃出Bug區、Feature區等功能,就需要分支功能。(確實很強大的地方)
每次commit
時,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裡,這個分支叫主分支,即master
分支。而此時HEAD
也指向master
。
每次提交,master
分支都會向前移動一步,這樣,隨著你不斷提交,master
分支的線也越來越長。
當我們建立新的分支dev
的時候,將HEAD
指向dev
,這時候就在dev
分支上了。
建立和進入分支
建立分支:git branch 分支名字
進入分支:git checkout 分支名字
建立並且進入分支:git checkout -b 分支名字
如果想檢視當前在哪個分支:git branch
合併分支
如果在dev
分支下提交一張照片,此時,工作區是有照片的(在資料夾檢視)。然後切換到master
分支,會發現原生的工作區被重新整理了一下,然後圖片不見了。在命令列ls
檢視檔案列表也沒有圖片(如截圖所示)。此時,需要將dev
分支合併到master
分支。
合併分支:git merge 分支名字
。將分支合併到當前分支。這時可以發現,照片出現了。(附截圖)
注意到上面的Fast-forward資訊,Git告訴我們,這次合併是“快進模式”,也就是直接把master
指向dev
的當前提交,所以合併速度非常快。當然,也不是每次合併都能Fast-forward。
如果加上--no-ff
引數就是普通合併模式。這樣就保留了歷史資訊。
解決分支衝突
如果兩個或多個分支對同一檔案作出不同的操作,合併的時候就會有衝突。
如下面截圖先在dev
中修改txt,再在master
中作出不同的修改。
此時,git merge dev
就會報錯,提醒有衝突,需要手動解決
當然,也可以通過git status
檢視,會發現both modified
的錯誤提示。或者cat temp.txt
,不同分支的修改的不同之處被標註了出來。
在當前分支修改檔案內容並且再次提交修改,即可以解決衝突。
刪除分支
一條命令:git branch -d 分支名字
即可刪除
如果分支還未合併到當前分支:git branch -D 分支名字
強制刪除。
團隊共同作業(分支策略)
在實際開發中,我們應該按照幾個基本原則進行分支管理:
-
首先,
master
分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活; -
那在哪幹活呢?幹活都在
dev
分支上,也就是說,dev
分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev
分支合併到master
上,在master
分支發布1.0版本; -
你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往
dev
分支上合併就可以了 -
最後發布時,再將
dev
合併到master
更多 Git 教學系列文章:
GitHub 使用教學圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git使用圖文詳細教學 http://www.linuxidc.com/Linux/2016-11/136781.htm
Ubuntu Git安裝與使用 http://www.linuxidc.com/Linux/2016-11/136769.htm
Git 標籤管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 遠端倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 伺服器搭建與用戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享實用的GitHub 使用教學 http://www.linuxidc.com/Linux/2014-04/100556.htm
Git從入門到學會 http://www.linuxidc.com/Linux/2016-10/135872.htm
Git基本操作詳解 http://www.linuxidc.com/Linux/2016-10/135691.htm
Git部署與常用基本命令詳解 http://www.linuxidc.com/Linux/2017-06/144961.htm
分散式版本控制系統 Git 詳細教學 http://www.linuxidc.com/Linux/2017-05/143747.htm
相關文章