成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā)

alaege / 2056人閱讀

摘要:項(xiàng)目如何進(jìn)行多人協(xié)作開發(fā)聲明本文不介紹的基本用法,需要讀者對命令使用有一定的了解現(xiàn)在,大部分項(xiàng)目都是用來管理代碼的,但當(dāng)項(xiàng)目變大多人協(xié)作時,的使用就變得復(fù)雜了,這時就需要在使用的流程上來思考如何更優(yōu)的使用。

web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā)
聲明:本文不介紹 git 的基本用法,需要讀者對 git、git 命令、git 使用有一定的了解

現(xiàn)在,大部分項(xiàng)目都是用 git 來管理代碼的,但當(dāng)項(xiàng)目變大、多人協(xié)作時,git 的使用就變得復(fù)雜了,這時就需要在 git 使用的流程上來思考如何更優(yōu)的使用 git。

對于大部分 web 項(xiàng)目而言,并不像軟件、APP 項(xiàng)目一樣有版本的劃分,而是不斷的更新、迭代,這就使得 web 項(xiàng)目的 git 使用要復(fù)雜一些,需要管理好哪些是正在開發(fā)的代碼、哪些是提交測試的代碼、哪些是已經(jīng)上線的代碼、多人共同開發(fā)時如何避免代碼沖突與線上新代碼被舊代碼覆蓋等等。

1. 一個分支

如果項(xiàng)目比較小,不頻繁更新時,可以只用 master 一個分支。

使用流程:

提交代碼到本地 master 分支,并推送到遠(yuǎn)程 master 分支

持續(xù)集成構(gòu)建或本地構(gòu)建,然后上傳到服務(wù)器

上傳到服務(wù)器有兩種方式:

持續(xù)集成構(gòu)建,然后同步到服務(wù)器

本地構(gòu)建,然后上傳到服務(wù)器(為了簡潔清晰,后面的圖例中會隱藏這種方式)

2. 開發(fā)分支與個人分支

如果項(xiàng)目稍大些,頻繁更新時,就需要另外一個開發(fā)分支:

master:主分支,對應(yīng)線上代碼

dev:開發(fā)分支,對應(yīng)開發(fā)代碼

使用流程:

提交代碼到本地 dev 分支

在需要構(gòu)建項(xiàng)目時 merge 到本地 master 分支,并推送到遠(yuǎn)程 master 分支

持續(xù)集成構(gòu)建,然后同步到服務(wù)器

如果是多人參與的項(xiàng)目,就需要個人開發(fā)分支了:

master:主分支,對應(yīng)線上代碼

man1:個人 man1 開發(fā)分支

man2:個人 man2 開發(fā)分支

使用流程:

提交代碼到本地 man1 分支(以 man1 個人為例)

在需要構(gòu)建項(xiàng)目時 merge 到本地 master 分支,并推送到遠(yuǎn)程 master 分支(有可能需要先 pull 遠(yuǎn)程的代碼)

持續(xù)集成構(gòu)建,然后同步到服務(wù)器

在適當(dāng)?shù)臅r候,每一個個人分支(如 man1, man2)都需要 pull 一下 master 分支,以保證自己本地的代碼的版本不會低于服務(wù)器。

3. 多個服務(wù)器環(huán)境

如果項(xiàng)目比較大,并且對應(yīng)多個服務(wù)器環(huán)境(測試環(huán)境、產(chǎn)品環(huán)境):

master:主分支

prod:產(chǎn)品分支,對應(yīng)產(chǎn)品服務(wù)器環(huán)境

test:測試分支,對應(yīng)測試服務(wù)器環(huán)境

dev:開發(fā)分支

使用流程:

構(gòu)建測試環(huán)境:

提交代碼到本地 dev 分支

在需要構(gòu)建項(xiàng)目時 merge 到本地 test 分支,并推送到遠(yuǎn)程 test 分支

持續(xù)集成構(gòu)建,然后同步到測試服務(wù)器

構(gòu)建產(chǎn)品環(huán)境可以由遠(yuǎn)程的 test 分支 merge 到遠(yuǎn)程 prod 分支進(jìn)行持續(xù)集成構(gòu)建,也可由本地 devtest 分支 merge 到本地 prod 分支,并推送到遠(yuǎn)程 prod 分支進(jìn)行持續(xù)集成構(gòu)建。

如果是多人參與的項(xiàng)目,就需要個人開發(fā)分支了:

master:主分支

prod:產(chǎn)品分支,對應(yīng)產(chǎn)品服務(wù)器環(huán)境

test:測試分支,對應(yīng)測試服務(wù)器環(huán)境

man1:個人 man1 開發(fā)分支

man2:個人 man2 開發(fā)分支

使用流程:

構(gòu)建測試環(huán)境:

提交代碼到本地 man1 分支(以 man1 個人為例)

在需要構(gòu)建項(xiàng)目時 merge 到本地 test 分支,并推送到遠(yuǎn)程 test 分支(有可能需要先 pull 遠(yuǎn)程的代碼)

持續(xù)集成構(gòu)建,然后同步到測試服務(wù)器

構(gòu)建產(chǎn)品環(huán)境可以由遠(yuǎn)程的 test 分支 merge 到遠(yuǎn)程 prod 分支進(jìn)行持續(xù)集成構(gòu)建,也可由本地 man1test 分支 merge 到本地 prod 分支,并推送到遠(yuǎn)程 prod 分支進(jìn)行持續(xù)集成構(gòu)建。

在適當(dāng)?shù)臅r候,每一個個人分支(如 man1, man2)都需要 pull 一下 prod 分支(如有需要,也可以 pull test 分支),以保證自己本地的代碼的版本不會低于服務(wù)器。

4. 多個需求同時開發(fā)

有時候會有多個需求同時開發(fā),并且相互獨(dú)立,為了不影響每個需求的測試與上線,需要為每個需求創(chuàng)建一個分支。

master:主分支

prod:產(chǎn)品分支,對應(yīng)產(chǎn)品服務(wù)器環(huán)境

test:測試分支,對應(yīng)測試服務(wù)器環(huán)境

man1:個人 man1 開發(fā)分支

man2:個人 man2 開發(fā)分支

task1:需求 task1 開發(fā)分支

task2:需求 task2 開發(fā)分支

使用流程:

構(gòu)建測試環(huán)境與之前的步驟一致,但構(gòu)建產(chǎn)品環(huán)境時,為了保證各個需求不相互影響,一般由本地直接合并到 prod 分支:

本地 task1 分支 merge 到本地 prod 分支,并推送到遠(yuǎn)程 prod 分支進(jìn)行持續(xù)集成構(gòu)建

每一個個人分支(如 man1, man2)都需要 pull 一下 prod 分支,以保證自己本地的代碼的版本不會低于服務(wù)器

最后刪除 task1 分支

5. 多人協(xié)作開發(fā)修改公共文件

因?yàn)椴煌种薷耐粋€文件而導(dǎo)致的文件沖突是多人協(xié)作開發(fā)中比較常見的問題之一,避免這種問題的思路主要有以下的幾種:

在代碼層面,盡量避免多個成員都會改動的文件,盡量將代碼分解到每個人只負(fù)責(zé)自己的那塊代碼,不需要去改別人的代碼

在工程層面,盡量減少公共文件,盡量每個文件只由一個人負(fù)責(zé)

在 git 層面,如果有必要,可以多帶帶建一個分支,用于更新某些公共文件,并及時的更新到其他分支

6. 其他分支

有一些常用的分支,可能我們會用到:

bug 分支:用于緊急修復(fù)產(chǎn)品環(huán)境的 bug

7. 根據(jù)情況調(diào)整、簡化流程

上面的圖例只有測試服務(wù)器和產(chǎn)品服務(wù)器,更多服務(wù)器類型的工作流程是類似的;圖例也只有 man1man2 兩個個人分支,更多個人分支的工作流程也是類似的。

上面的圖例主要用于以下特點(diǎn)的項(xiàng)目(需要把整個項(xiàng)目打包成一個整體):

單頁面 web 前端應(yīng)用,整個項(xiàng)目只有一個 html 文件,頁面之間的切換由本地路由控制,每次更新到服務(wù)器都需要打包所有頁面

Java、Go 等后端應(yīng)用,每次都需要打包成一個整體,可能是一個文件,或者一批文件(不打包成一個整體的方式除外,比如分散 java class 文件)

使用持續(xù)集成構(gòu)建的方式更新代碼到服務(wù)器

這樣做主要是為了避免一些問題:

線上新代碼被舊代碼覆蓋:多人同時開發(fā)項(xiàng)目,都需要更新到測試機(jī),如果不是統(tǒng)一 pushtest 分支做持續(xù)集成構(gòu)建,很難保證線上新代碼不會被舊代碼覆蓋

未測試的代碼被更新到產(chǎn)品環(huán)境:這個問題也需要注意,因?yàn)檫@個問題并不能從流程上完全杜絕,需要各位在開發(fā)中留意

對于像下面這種特點(diǎn)的項(xiàng)目,可以根據(jù)情況調(diào)整、簡化流程:

多頁面 web 前端應(yīng)用,把某一個頁面更新到服務(wù)器并不影響其他頁面

NodeJs、PHP、Python 等后端應(yīng)用,只上傳自己更新的文件,而不影響服務(wù)器上其他文件(把所有代碼打包成一個整體的方式除外)

使用本地構(gòu)建的方式更新代碼到服務(wù)器

比如:

master:主分支

man1:個人 man1 開發(fā)分支

man2:個人 man2 開發(fā)分支

task1:需求 task1 開發(fā)分支

task2:需求 task2 開發(fā)分支

使用流程:

如果多個需求沒有沖突,可以同時在 man1 個人分支上開發(fā),并根據(jù)需要上傳到不同的服務(wù)器。

如果多個需求有沖突,可以每個需求都新建一個分支,如上圖所示:

提交代碼到本地 task1 分支(以 task1 個人為例)

根據(jù)需要上傳到不同的服務(wù)器

如果代碼通過產(chǎn)品環(huán)境后,更新到每個個人分支,并刪除 task1 分支

這樣子,就簡單很多了。

后續(xù)

更多博客,查看 https://github.com/senntyou/blogs

作者:深予之 (@senntyou)

版權(quán)聲明:自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73280.html

相關(guān)文章

  • web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā)

    摘要:項(xiàng)目如何進(jìn)行多人協(xié)作開發(fā)聲明本文不介紹的基本用法,需要讀者對命令使用有一定的了解現(xiàn)在,大部分項(xiàng)目都是用來管理代碼的,但當(dāng)項(xiàng)目變大多人協(xié)作時,的使用就變得復(fù)雜了,這時就需要在使用的流程上來思考如何更優(yōu)的使用。 web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā) 聲明:本文不介紹 git 的基本用法,需要讀者對 git、git 命令、git 使用有一定的了解 現(xiàn)在,大部分項(xiàng)目都是用 git 來管理...

    lushan 評論0 收藏0
  • web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā)

    摘要:項(xiàng)目如何進(jìn)行多人協(xié)作開發(fā)聲明本文不介紹的基本用法,需要讀者對命令使用有一定的了解現(xiàn)在,大部分項(xiàng)目都是用來管理代碼的,但當(dāng)項(xiàng)目變大多人協(xié)作時,的使用就變得復(fù)雜了,這時就需要在使用的流程上來思考如何更優(yōu)的使用。 web 項(xiàng)目如何進(jìn)行 git 多人協(xié)作開發(fā) 聲明:本文不介紹 git 的基本用法,需要讀者對 git、git 命令、git 使用有一定的了解 現(xiàn)在,大部分項(xiàng)目都是用 git 來管理...

    Ocean 評論0 收藏0
  • 精讀《Monorepo 的優(yōu)勢》

    摘要:引言本周精讀的文章是。精讀總的來說,雖然拆分子倉庫拆分子包是進(jìn)行項(xiàng)目隔離的天然方案,但當(dāng)倉庫內(nèi)容出現(xiàn)關(guān)聯(lián)時,沒有任何一種調(diào)試方式比源碼放在一起更高效。前端精讀幫你篩選靠譜的內(nèi)容。 1. 引言 本周精讀的文章是 The many Benefits of Using a Monorepo。 現(xiàn)在介紹 Monorepo 的文章很多,可以分為如下幾類:直接介紹 Lerna API 的;介紹如何...

    xcc3641 評論0 收藏0
  • git 詳解及實(shí)用指南之三(分支管理)

    摘要:詳解及實(shí)用指南之一本地操作詳解及實(shí)用指南之二遠(yuǎn)程操作創(chuàng)建與合并分支利用分支就可以實(shí)現(xiàn)多人開發(fā)的偉大模式,從而提高生產(chǎn)效率。分支默認(rèn)情況下,是一條線,利用指向最新的提交,再用批向就能確定當(dāng)前分支以及當(dāng)前分支的提交點(diǎn)。 1. git 詳解及實(shí)用指南之一 (本地操作) 2. git 詳解及實(shí)用指南之二 (遠(yuǎn)程操作) 1.創(chuàng)建與合并分支 利用分支就可以實(shí)現(xiàn)多人開發(fā)的偉大模式,從而提高生產(chǎn)效率。...

    cgspine 評論0 收藏0
  • git 詳解及實(shí)用指南之三(分支管理)

    摘要:詳解及實(shí)用指南之一本地操作詳解及實(shí)用指南之二遠(yuǎn)程操作創(chuàng)建與合并分支利用分支就可以實(shí)現(xiàn)多人開發(fā)的偉大模式,從而提高生產(chǎn)效率。分支默認(rèn)情況下,是一條線,利用指向最新的提交,再用批向就能確定當(dāng)前分支以及當(dāng)前分支的提交點(diǎn)。 1. git 詳解及實(shí)用指南之一 (本地操作) 2. git 詳解及實(shí)用指南之二 (遠(yuǎn)程操作) 1.創(chuàng)建與合并分支 利用分支就可以實(shí)現(xiàn)多人開發(fā)的偉大模式,從而提高生產(chǎn)效率。...

    darryrzhong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<