国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

lushan / 836人閱讀

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

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

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

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

1. 一個分支

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

使用流程:

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

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

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

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

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

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

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

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

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

使用流程:

提交代碼到本地 dev 分支

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

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

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

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

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

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

使用流程:

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

在需要構(gòu)建項目時 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)境

如果項目比較大,并且對應(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)建項目時 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)建。

如果是多人參與的項目,就需要個人開發(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)建項目時 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ā),并且相互獨立,為了不影響每個需求的測試與上線,需要為每個需求創(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ā)修改公共文件

因為不同分支修改同一個文件而導(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 兩個個人分支,更多個人分支的工作流程也是類似的。

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

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

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

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

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

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

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

對于像下面這種特點的項目,可以根據(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://specialneedsforspecialkids.com/yun/30103.html

相關(guān)文章

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

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

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

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

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

    摘要:引言本周精讀的文章是。精讀總的來說,雖然拆分子倉庫拆分子包是進(jìn)行項目隔離的天然方案,但當(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 詳解及實用指南之三(分支管理)

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

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

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

    darryrzhong 評論0 收藏0

發(fā)表評論

0條評論

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