團隊開發(fā)Git管理策略
簡介
?????? Git是一個免費的開源?分布式版本控制系統,旨在快速,高效地處理從小型到大型項目的所有事務。
分支管理
問?
1. 那么團隊中我們該使用怎樣的分支策略來進行開發(fā)協作?
2. 在多人的團隊中,我們應該在?master?分支上直接開發(fā)嗎?
3. 如果線上產生了bug該通過什么樣方式的分支去修復?
4. 當有多個分支的時候,測試如何有效的參與進來每一個分支的測試?
Git的三種工作方式
Git flow
Github flow
Gitlab flow
這里就說用的比較多的Gitlab flow
?主要分支:
?????? master: 項目的主要分支,規(guī)范的分支管理是不允許在此分支進行改動代碼
?????? develop:開發(fā)分支,develop處于功能開發(fā)的最前線的版本,查看develop分支就能知道下一個發(fā)布版本有哪些功能了。develop一開始是從master里分出來的,并且定期會合并到master里,每一次合并到master,表示我們完成了一個階段的開發(fā),產生一個穩(wěn)定版。同樣的,develop下也不建議直接開發(fā)代碼,develop代表的是已經開發(fā)好的功能的回歸版本。最后,在適當的時候,由合適的人,合并到master,作為下一個穩(wěn)定版本。
輔助分支:
feature: 功能分支,開發(fā)新功能的分支, 基于 develop, 完成后merge回develop
release: 預發(fā)布分支,準備要發(fā)布版本的分支,也基于 develop, 完成后 merge回 develop分支
hotfix: 補丁分支,修復maste上的問題, 等不及 release 版本就必須馬上上線. 基于 master, 完成后merge回? ? ? ? ? master 和develop
?
一般來說輔助分支是不存在遠程倉庫,只存在于本地倉庫的分支
分支命名規(guī)則:develop-xxx,release-xxx,feature-xxx,hotfix-xxx
?

使用工具相關操作
New Branch : 從當前分支新建分支。上圖就是從master分支創(chuàng)建新的分支。
Checkout Tag or Revision : 使用分支、標簽或提交編碼,檢出一個臨時分支
Local Branches : 本地分支列表。同時顯示對應了那個遠程分支。
Remote?Branches : 遠程分支列表
?
Checkout: 檢出這個分支。
Checkout?As...?: 使用這個分支創(chuàng)建新的分支并檢出到新分支。
Compare?With... : 使用當前分支與所選分支做代碼提交比較。
Rebase?Current onto Selected: 在當前分支做變基。(將所選分支提交加入到當前分支)
Checkout?with Rebase : 檢出所選分支并做變基。(將當前分支提交加入到所選分支)
Merge?into ?Current: 合并到當前分支(將所選分支合并到當前分支)
Rname:修改所選分支名稱
Delete:刪除所選分支
?
首次發(fā)文,如果講的不當請見諒,希望大家指出我的不足之處