例如,我正在開發(fā)feature/user
使用者管理模組,提供使用者的名稱,資訊等等, 我的同事正在開發(fā)feature/login
登入系統(tǒng),他需要我的使用者模組來偵測是否可以登入,取得用戶資訊等等。
問題1:
假設(shè)我已經(jīng)完成了使用者係統(tǒng),那麼怎麼給我的同事讓他使用?
是我先 finish
, 同事再 finish
, 同事再 start
麼?不太現(xiàn)實。
問題2:
假設(shè)我沒有完成使用者係統(tǒng),但是我完成了同事所需的內(nèi)容,那怎麼給他使用?
是我先 finish
, 同事再 finish
, 我和同事再 start
,分別繼續(xù)開發(fā)麼?
這些有什麼好的解決方案?
補充:首先主要是時間太緊張了,一個人肯定寫不來,所以要多個人一起,可是多個人又會牽扯依賴問題。所以想知道如何解決這個問題。
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
由於你並未提及是否在同一個工程項目下進行開發(fā); 這裡我先假設(shè)你是同一個項目, 在闡述我的意思之前請你首先看一看下面這幾點, 你是否都清楚:
git的節(jié)點之間是對等的
git支援ssh,http,file等協(xié)定
我的建議:
假設(shè)John和Jane兩人合作開發(fā)同一個專案;
John創(chuàng)建一個專案demo, 該專案在它的個人目錄下;
cd /home/John/demo/;
git init
git add .
git commit;
Jane如果和John在同一個開發(fā)機, 那麼她可以直接在自己的home下clone出John的代碼
git clone /home/John/demo/ #Jane應(yīng)該具有該目錄的權(quán)限
現(xiàn)在John可以繼續(xù)開發(fā), Jane也可以繼續(xù)開發(fā), 兩人都可以持續(xù)提交;
git commit #John
git commit #Jane
由於Jane直接clone的John的代碼,所以在Jane的目錄下git天然記錄了另外一個開發(fā)者的地址, 它的名字叫做remote,具體內(nèi)容在.git/config中, 配置字段名字叫做origin; Jane
可以直接拉取origin來源的所有更新到自己的程式碼;
git pull --rebase origin
問題來了,如果John也需要Jane的代碼呢? 由於John的git項目中還沒任何其他開發(fā)節(jié)點的信息, 他需要自己手工添加; 添加完之後他就可以隨時拉取Jane的更新;
git remote add jane /home/Jane/demo/
git pull --rebase jane
現(xiàn)在John和Jane就可以互相拉取對方的程式碼到自己的資料夾中; 愉快地開發(fā)了;
我覺得這個需求在分工上就衝突了
一個模組強依賴另一個模組,必然要進入等待
所以再細化你們的需求
User模組完成後就可以提交
此時你分支你的模組再繼續(xù)
你同事分支他的模組再繼續(xù)
這是標準流程
有個概念叫持續(xù)集成,越早進行集成操作對你們的代碼越有利
往下延伸的概念叫持續(xù)交付都是應(yīng)付這種環(huán)境的 可以參考
對於這種情況我建議這個方法:
從 feature/user
分支上開出一個新的分支 feature/user_login
當 feature/user
開發(fā)進入到可用的階段時, 把代碼往 feature/user_login
上合并
這樣 feature/user_login
可以直接進行測試
當 feature/user_login
開發(fā)完畢后,合并到 feature/user
上
最后 finish
feature/user
這樣是將 feature/user_login
作為 feature/user
的一個子功能開發(fā)的
如果再做功能的時候不是這樣設(shè)計的, 那最好還是將 feature/user
finish
后再開發(fā) feature/login