[版本控制]原來Git分支都是這麼用的

微信號:GitShare
微信公衆號:愛折騰的稻草
如有問題或建議,請在公衆號留言[1]

Git的分支類型

1、Master分支

一個項目的代碼庫應該有且只有一個主分支,所有提供給用戶使用的正式版本,都是在這個主分支上,我們稱爲Master分支。

2、Develop分支

日常使用的開發分支。這個分支可以用來生成代碼的隔夜版本,如果開發功能測試完成後,想正式對外發布,就在Master分支上,對Develop分支進行“合併”(Merge)。

3、臨時分支

除了日常開發設置分支外,還有一種臨時分支,以應對一些特定目的的版本開發。

  • 功能分支:它是爲了開發某種特定的功能,從Develop分支上分出來的。開發完成後,合併到Develop分支上。其命名規範:feature-*

  • 預發佈分支:在發佈到正式版本之前,我們可能需要有一個預發佈版本進行測試。預發佈分支是從Develop分支上分出來的,預發佈結束後,必須合併到Develop分支和Master分支。其命名規範:release-*

  • 修補Bug分支:軟件正式發佈後,出現一些Bug,這時就需要創建一個分支,來進行Bug修復。修復Bug分支是從Master分支上分出來的,修補結束後,在合併到Develop和Master分支。其命名規範:fixbug-*

Git的分支使用

1、develop分支(develop)
  • Git創建develop分支
    develop分支是從master分支中分出來的,其命令:

git checkout -b develop master
  • 將develop分支發佈到master分支

# 切換到master分支
git checkout master

# 對develop分支進行合併
git merge --no-ff develop

Git Merge在默認情況下是執行“快進式合併”,也就是將master分支直接指向develop分支,並沒有建立新的節點。
爲了保證版本演進的清晰,我們一般採用正常合併,即使用--no-ff參數,master分支上生成一個新節點。

2、功能分支(feature-*)
  • Git創建功能分支
    feature分支是蟲develop分支中分出來的,其命令:

# x 版本號,如:1.1
git checkout -b feature-x develop
  • 將feature分支合併到develop分支
    開發完成後,需要將功能分支合併到開發分支,其命令:

git checkout develop
git merge no-ff feature-x 
  • 刪除功能分支

git branch -d feature-x
3、預發佈分支(release-*)
  • Git創建預發佈分支
    預發佈分支是從develop分支中分出來的,其命令:

# x 版本號,如:1.1
git checkout -b release-x develop
  • 將預發佈分支合併到master分支
    預發佈分支測試沒有問題後,需要合併到master分支,其命令:

git checkout master
git merge --no-ff release-x

# 對合並生成的新節點,做一個標籤(打上版本標籤)
git tag -a x
  • 刪除預發佈分支

git branch -d release-x
4、修復Bug分支(fixbug-*)
  • Git創建修復Bug分支
    修復Bug分支是從master分支中分出來的,其命令:

x版本號,如:1.1.1
git checkout -b fixbug-x master
  • 將修復Bug分支合併到master分支
    bug修復完成後,需要合併到master分支,其命令:

git checkout master
git merge --no-ff fixbug-x 
git tag x
  • 將修復bug分支合併到develop分支

git checkout develop
git merge --no-ff fixbug-x
  • 刪除修復bug分支

git branch -d fixbug-x

總結

在Git系統中合併代碼有git merge 和git rebase兩種方式。爲什麼我們不講git rebase呢,因爲它不常用。

  • rebase的優勢在於項目的歷史提交信息非常完整。

  • rebase的劣勢在於安全性和可跟蹤性。

  • rebase的黃金法則:==絕對不要在公共分支上使用它==


圖注:愛折騰的稻草圖注:愛折騰的稻草


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章