Git的使用---6. 分支管理

1. 分支介紹

分支的簡單的理解就是分身,就像孫悟空拔出猴毛變出不少跟本身如出一轍的猴子,而後每一個猴子作本身的事情互不干涉,等到全部猴子作完以後,猴子集合來合併勞動成果,而後悟空就把那些猴子猴孫門通通收回了。Git的分支也是一個殺手鐗級別的功能!php

爲了和咱們的實際工做更加接近,咱們講個世紀的例子,讓你們體會一下分支:git

好比:你如今正在a.php裏面作新功能的增長,大約寫了300行代碼,忽然,線上運行的代碼爆出了一個bug,須要你放下一切手頭工做,全力解決這個bug,你去檢查後發現,原來是這個a.php,出了點bug,修改的話也就是20來行代碼完事。spa

這時候問題來了:你從線上直接down下a.php修改的話,這個bug當時處理了,可是等前面的那個300行代碼的後續工做作完,再傳到線上的時候,就把此次的bug修改又覆蓋掉了,bug依然會再次出現。若是你直接在你的開發版本上的a.php中修改的話,難保你新寫的這300行代碼不出新的bug。這時候咋辦?code

這時候,咱們的分支概念就起效了,下面咱們能夠看一下流程:blog

image

2. 建立分支

git branch 分支名 

git branch命令會列出全部分支,當前分支前面會標一個*號開發

3. 切換分支

git checkout 分支名 

建立並切換到新分支,可使用:string

git checkout -b 分支名 

4. 合併分支

git merge命令用於合併指定分支到當前分支,下面是一個例子:先切換到master分支,而後將新分支my合併到master分支it

git checkout master git merge my 

若是合併時加上--no-ff參數,表示禁用Fast forward模式合併,如:ast

git merge --no-ff -m "merge with no-ff" my 

合併分支時,加上--no-ff參數就能夠用普通模式合併,合併後的歷史有分支,能看出來曾經作過合併,而fast forward合併就看不出來曾經作過合併。class

5. 刪除分支

git branch -d 分支名 

6. 刪除有內容的分支

git branch -D 分支名 

7. 分支管理策略

在實際開發中,咱們應該按照幾個基本原則進行分支管理:

首先,master分支應該是很是穩定的,也就是僅用來發布新版本,平時不能在上面幹活; 幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,好比1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本; 你和你的小夥伴們每一個人都在dev分支上幹活,每一個人都有本身的分支,時不時地往dev分支上合併就能夠了。

image

相關文章
相關標籤/搜索