微信號: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的黃金法則:==絕對不要在公共分支上使用它==。
圖注:愛折騰的稻草