Git上手:四種常見的Git協同工做方式

1.集中式工做流git

適用人羣:開發小團隊(4-5人),習慣使用SVN工具的小團隊。分佈式

工做方式:團隊組長建立遠程倉庫,建立一個master分支,組員可讀可寫。工具

                  每一個開發人員都git clone遠程倉庫到本地倉庫,在master分支上開發。性能

                  每次開發都要git pull更新到遠程倉庫的master分支版本。測試

                  每次開發完成就git commit到本地倉庫, 接着git push到遠程倉庫。spa

缺點:忘了git push,一直會提交到本地倉庫,沒有推送到遠程倉庫。開發

           忘了git pull,致使本地倉庫與中央倉庫不一致,發生文件衝突。同步

           大量操做git pull,致使增長git分支合併次數,增長了git變基次數,下降了git的性能。工作流

 

2.分支工做流it

適用人羣:開發中團隊(10人以上,100人如下),熟悉Git分支的團隊。

工做方式:團隊組長建立遠程倉庫,建立一個master分支,組員可讀不可寫。

                  每一個開發人員都git clone遠程倉庫到本地倉庫。

                  每一個開發人員建立本身的feature分支,在feature分支上開發。(記住,feature分支是基於master分支)

                  每一個開發人員每次開發完成就git commit到本地倉庫中本身的feature分支, 接着git push到遠程倉庫。

                  經過pull request提醒團隊組長,瀏覽組員提交feature分支。

                  組長把feature分支拉下來併合併到本身本地倉庫的master分支上測試。

                  組長測試feature分支經過以後,由組長負責把feature分支合併到遠程倉庫的master分支上。

                  組長在遠程倉庫把合併過的feature分支刪除。

                  組員在本地倉庫把合併過的feature分支刪除。

                  組員將本地倉庫分支切換爲master分支,而後git pull將本地倉庫的master分支更新到遠程倉庫的master分支版本。

缺點:增長團隊組長的工做量。

           增長團隊組員提交步驟。

 

PS:Pull Request做用是能夠讓其餘組員或組長能夠查看你的代碼,並能夠提出代碼修改意見或者討論。

 

3.Gitflow工做流(多分支工做流)

適用人羣:開發團隊(100人以上),熟悉Git分支的團隊。

工做方式:項目維護者建立項目維護者的遠程倉庫,建立master分支與develop分支,貢獻者可讀不可寫。

                  每一個貢獻者git clone遠程倉庫中的develop分支到本地倉庫。(記住,develop分支至關於master的分支,包括功能開發,修改,測試。master分支至關於最終分支)

                  每一個貢獻者在本地倉庫建立本身的feature分支,在feature分支上開發。

                  在feature分支又能夠建立多個feature分支,繼續開發項目。

                  每一個貢獻者每次開發完成就git commit到本地倉庫中本身的feature分支, 接着git push到遠程倉庫。

                  經過pull request提醒項目維護者,瀏覽貢獻者提交feature分支。

                  項目維護者把feature分支拉下來併合併到本身本地倉庫的develop分支上測試。

                  組長測試feature分支經過以後,由組長負責把feature分支合併到遠程倉庫的develop分支上。

                  項目維護者會release分支上git tag打上版本號。

                  項目維護者能夠從develop分支建立release分支,接着把release分支合併到master分支上,同時master分支同步到develop分支。

                  項目維護者在遠程倉庫把合併過的feature分支刪除。

                  每一個貢獻者在本地倉庫把合併過的feature分支刪除。

                  每一個貢獻者將本地倉庫分支切換爲develop分支,而後git pull將本地倉庫的master分支更新到遠程倉庫的develop分支版本。

                  

PS:Gitflow工做流是Vincent Driessen工程師提出的多分支工做流。

           

4.分叉工做流(分佈式倉庫工做流)

適用人羣:開發團隊(1000以上),熟悉Git分支的團隊。

工做方式:主項目維護者建立主項目維護者的遠程倉庫,建立一個master分支,從項目維護者可讀不可寫。

                  從項目維護者經過fork主項目維護者的遠程倉庫的副本到本身的遠程倉庫,包括master分支。(記住,從項目維護者的遠程倉庫獨立於主項目維護者的遠程倉庫)

                  從項目維護者git clone主項目維護者的遠程倉庫的副本到本地倉庫。

                  從項目維護者建立本身的feature分支,在feature分支上開發。

                  從項目維護者每次開發完成就git commit到本地倉庫中本身的feature分支, 接着git push到遠程倉庫。

                  經過pull request從項目維護者合併本身feature分支到從項目維護者的遠程倉庫的master分支上。

                  從項目維護者在遠程倉庫把合併過的feature分支刪除。

                  從項目維護者在本地倉庫把合併過的feature分支刪除。

                  從項目維護者在遠程倉庫經過pull request向主項目維護者的遠程倉庫的推送。

                  主項目維護者經過pull request獲取從項目維護者的遠程倉庫的推送。

                  主項目維護者進行從項目維護者的遠程倉庫代碼審查,測試。

                  主項目維護者確認無誤後,能夠直接合併到主項目維護者的遠程倉庫。

相關文章
相關標籤/搜索