git多人協作開發流程 以blog為例

2021-07-09 05:42:21 字數 3896 閱讀 1971

時間倉促,能力有限,錯誤難免(**沒有經過實際驗證,所以可能會有問題),歡迎指正 :)

這個開發流程就是基於a successful git model這篇文章而來的,如果對英文不感冒的話,我這有翻譯版

專案背景:

張三 / 李四 / 王五 打算共同協作,開發一套部落格系統

專案分工:

張三 / 李四 負責文章系統

git雖然是分布式版本管理工具,但為了方便管理,我們需要建立乙個中心倉庫,先在服務端建立兩條分支

master

develop

master儲存穩定版(production ready),開發人員平時的**都提交到develop分支上

張三的git分支

因為張三和李四同時開發文章系統,所以就有了下面的分支

# 張三的git分支

李四的git分支

跟張三類似,不過article server變成了張三的

# 李四的git分支

王五的git分支

# 王五的git分支

張三和李四

假設張三負責文章的管理,及前端顯示。李四負責文章的分類和標籤系統。

張三開發完一部分後(n次本地commit),提交到本地的git server(也就是李四新增的http://zhangsan-server/zhangsan.git)。

李四開發完一部分後,因為要與張三開發的部分合併,所以需要執行一下rebase或merge

# 當前在article分支中

git rebase zhangsan/article

# 提交到本地的git server (也就是張三新增的http://lisi-server/lisi.git)。

git push local/article master

這時張三又開發完了一部分,他也會走跟李四一樣的流程,rebase & push (如果有衝突,解決之)。

假設由張三統一負責將每日的開發進度提交到remote develop分支上,張三在執行了上面所說的流程後,提交到服務端的develop分支。但這時很可能王五已經把他寫的**提交了,所以要先執行一下rebase

git rebase origin/develop

git push origin develop

這樣張三和李四的**就都提交到了服務端的develop分支上。王五那邊的流程也一樣,只是少了本地同步的過程。

經過幾天的開發,各個功能都已基本完成,下面就要進入測試階段。具體做法是在服務端新新增乙個分支,命名為release,所以這時服務端就有3個分支了

master

develop

release

三位同學都在本地新建乙個branch,對應服務端的release分支

git checkout -b release origin/release

分別進行測試,如果發現問題,則執行pull & push

# 當前在release分支下

git pull origin release

git push origin develop

經過幾天的測試後,發現沒什麼問題了,就可以發布穩定版了,假設為0.1

git checkout master

git rebase origin/release

git tag 0.1

git push origin master --tags

同時別忘了把release分支上的**與develop分支合併,保證develop分支上不會有遺留的bug。(沒有找到如何直接merge兩個服務端branch的方法)

git checkout develop

git rebase origin/release

git push origin develop

# 刪除服務端的release分支

git push origin :release

接下來就可以繼續在develop分支上進行開發了。

部落格系統需要新增archives功能,這個功能的開發就交給了新來的趙六。此時,在服務端新開乙個分支,命名為feature,這時服務端的分支就變成了這樣

master

develop

feature/archive

趙六也在本地建立乙個archive分支,每天提交到服務端的feature/archive,趙六的git分支是這樣的(不相關的服務端git已省去)

master

archive

origin/feature/archive

等到這個feature開發完了,與服務端的develop分支執行一下rebase,然後再提交到服務端的develop,這樣部落格的archive功能就有了

git checkout archive

git rebase origin/feature/archive

git push origin feature/archive

# 如果要刪除服務端的feature/archive分支的話

git push origin :feature/archive

接下來的流程跟上面的一樣:開發完畢後,新建release分支,在那上面進行bug修復,修復完畢後,merge到服務端的master和develop

部落格出現了乙個xss漏洞,需要盡快修復,這時新建乙個hotfix分支(現在本地建,然後提交到服務端),然後對漏洞進行修復,修復完後,提交到服務端的master和develop

git checkout master

git pull origin master

git checkout -b hotfix

# 漏洞修復...

# 修復完後

git push origin hotfix

git checkout master

git rebase hotfix

git push origin master

git push origin develop

關於 Git 多人協作的流程

如今的專案,規模越來越大,功能越來越多,需要有乙個團隊進行開發。如果有多個開發人員共同開發乙個專案,如何進行協作的呢。git提供了乙個非常好的解決方案 多人協作開發。git常用命令 git init 初始化倉庫 git remote add origin 與遠端倉庫建立連線 git clone 轉殖...

Git多人協作

1 檢視遠端庫資訊 git remote git remote v 2 推送分支 將本地的資訊push到伺服器上 git push origin master 注意 1 master分支是主要的分支,需要時時刻刻同步 2 dev分支是開發分支,所有團隊成員在上面工作,需要同步 3 bug分支只用於本...

git 多人協作

檢視遠端庫資訊,使用git remote v 本地新建的分支如果不推送到遠端,對其他人就是不可見的 從本地推送分支,使用git push origin branch name,如果推送失敗,先用git pull抓取遠端的新提交 在本地建立和遠端分支對應的分支,使用git checkout b bra...