時間倉促,能力有限,錯誤難免(**沒有經過實際驗證,所以可能會有問題),歡迎指正 :)
這個開發流程就是基於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...