git工作流入門,

2021-09-03 03:04:01 字數 3045 閱讀 5555

git工作流你可以理解為工作中團隊成員遵守的一種**管理方案,在git中有以下幾種工作流方案作為方案指導:

gitflow工作流

這個工作流其實也是我們團隊採用的工作流,這也是很多團隊會採用的工作流,它會相對複雜一點,但它非常適合用來管理大型專案的發布和維護,後面筆者也會詳細講下這一塊。貫穿整個開發周期,master和develop分支是一直存在的,master分支可以被視為穩定的分支,而develop分支是相對穩定的分支,特性開發會在feature分支上進行,發布會在release分支上進行,而bug修復則會在hotfix分支上進行。筆者也是花了不少時間才熟練掌握整個工作流,期間遇到不少坑,後面會跟大家分享下。

主分支保持穩定

不允許直接往這個分支提交**,只允許往這個分支發起merge request

只允許release分支和hotfix分支進行合流

開發分支

相對穩定的分支

用於日常開發,包括**優化、功能性開發

從develop分支拉取,用於下個迭代版本的功能特性開發

功能開發完畢合併到develop分支

release分支

從develop分支拉取

用於回歸測試,bug修復

發布完成後打tag並合入master和develop

hotfix分支

熱更新分支

從develop分支拉取

用於緊急修復上線版本的問題

修復後打tag並合入master和develop

大家可能會發現我們這個跟標準的gitflow工作流有些差別,其實也沒有什麼標準不標準的,前面說到要結合團隊的實際情況,我們團隊對於目前所採用的工作方式都是達成共識的,所以有一些差異並沒有關係。

1). 首先將遠端**拉取到本地

git clone ***

git checkout -b develop origin/develop

2).新建feature分支

git checkout -b feature 

3).多人在feature上開發,如果中途需要將develop的變更合入feature,所有人需要將本地的**變更提交到遠端

git fetch origin 

git rebase origin/feature

git push origin feature

然後由feature負責人rebase develop分支,刪除原來feature分支,重新新建feature分支;

git fetch origin

git rebase origin/feature

git rebase develop

git push origin :feature

git push origin feature

這樣可以保證feature保持線性變更;

4).feature開發完成後,所有人需要將本地的**變更提交到遠端

git fetch origin 

git rebase origin/feature

git push origin feature

然後由feature負責人rebase develop分支,然後將feature分支合入develop,刪除feature;

git fetch origin

git rebase origin/feature

git rebase develop

git checkout develop

git merge feature

git push origin :feature

這樣可以保證develop保持線性變更,各feature的變更完整可追溯; 

5).合入feature後拉出對應的release/feature分支,後續bug修復在release/feature上

git checkout develop

git checkout -b release/feature

release/feature分支的同步合併與feature分支相同 

6).release/feature分支bug修復完成後,拉取對應的tag推送遠端進行發布

git tag -a v1.0 -m 'feature發布'

git push origin v1.0

之後將release/feature合入develop分支,然後刪除

git rebase develop

git checkout develop

git merge release/feature

git push origin :release/feature

7).發布完成後將release合入master分支,保證master為最新穩定版本(實際操作為發起merge request)

大型專案相對於中型專案又多了release版本。這個版本的作用只要是控制需求的更新以及當前版本bug的fix處理。

對於這種情景sourcetree自帶git-flow的功能

並且給出各種引導提示

和中型專案相比,hotfix分支在大型專案中只處理線上的bug問題。對於需求的控制,都會發生在release分支中。乙個release版本的生成並不意味著它可以直接提交master,qa的介入在中小型專案中屬於master分支,

但是在這個流程下,qa的介入屬於release分支,包括對於bug的修復操作也是直接在release版本完成。當qa對於release版本確認完成後,release版本merge到master預上線並且merge回develop保持**一致性。

git 工作流的一些經驗分享

【過程改進】總結大中小型專案的git流程

Git 工作流程

git 作為乙個原始碼管理系統,不可避免涉及到多人協作。協作必須有乙個規範的工作流程,讓大家有效地合作,使得專案井井有條地發展下去。工作流程 在英語裡,叫做 workflow 或者 flow 原意是水流,比喻專案像水流那樣,順暢 自然地向前流動,不會發生衝擊 對撞 甚至漩渦。本文介紹三種廣泛使用的工...

Git 工作流程

git 作為乙個原始碼管理系統,不可避免涉及到多人協作。協作必須有乙個規範的工作流程,讓大家有效地合作,使得專案井井有條地發展下去。工作流程 在英語裡,叫做 workflow 或者 flow 原意是水流,比喻專案像水流那樣,順暢 自然地向前流動,不會發生衝擊 對撞 甚至漩渦。本文的三種工作流程,有乙...

Git工作流程

在伺服器上有2個主要分支,master和develop 本地分支基本和遠端一樣,但是開發的時候,需要你在本地建立其他分支,最後等功能開發完成後,merge到你需要的分支上,然後刪除那個臨時的分支。這樣完成開發。專案者首先在gitlab建立2個分支,預設乙個master,並將master設定為保護,只...