團隊協作 - 在git flow中如果有人需要我寫的feature作為依賴怎麼辦?
伊谢尔伦
伊谢尔伦 2017-05-02 09:28:14
0
3
715

例如,我正在開發feature/user 使用者管理模組,提供使用者的名稱,資訊等等, 我的同事正在開發feature/login 登入系統,他需要我的使用者模組來偵測是否可以登入,取得用戶資訊等等。

問題1:

假設我已經完成了使用者係統,那麼怎麼給我的同事讓他使用?

是我先 finish, 同事再 finish, 同事再 start 麼?不太現實。

問題2:

假設我沒有完成使用者係統,但是我完成了同事所需的內容,那怎麼給他使用?

是我先 finish, 同事再 finish, 我和同事再 start,分別繼續開發麼?

這些有什麼好的解決方案?


補充:首先主要是時間太緊張了,一個人肯定寫不來,所以要多個人一起,可是多個人又會牽扯依賴問題。所以想知道如何解決這個問題。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(3)
巴扎黑

由於你並未提及是否在同一個工程項目下進行開發; 這裡我先假設你是同一個項目, 在闡述我的意思之前請你首先看一看下面這幾點, 你是否都清楚:

  1. git的節點之間是對等的

  2. git支援ssh,http,file等協定

我的建議:

假設John和Jane兩人合作開發同一個專案;

  • John創建一個專案demo, 該專案在它的個人目錄下;

cd /home/John/demo/; 
git init
git add .
git commit;
  • Jane如果和John在同一個開發機, 那麼她可以直接在自己的home下clone出John的代碼

git clone /home/John/demo/ #Jane应该具有该目录的权限
  • 現在John可以繼續開發, Jane也可以繼續開發, 兩人都可以持續提交;

git commit #John
git commit #Jane
  • 由於Jane直接clone的John的代碼,所以在Jane的目錄下git天然記錄了另外一個開發者的地址, 它的名字叫做remote,具體內容在.git/config中, 配置字段名字叫做origin; Jane
    可以直接拉取origin來源的所有更新到自己的程式碼;

git pull --rebase origin
  • 問題來了,如果John也需要Jane的代碼呢? 由於John的git項目中還沒任何其他開發節點的信息, 他需要自己手工添加; 添加完之後他就可以隨時拉取Jane的更新;

git remote add jane /home/Jane/demo/
git pull --rebase jane
  • 現在John和Jane就可以互相拉取對方的程式碼到自己的資料夾中; 愉快地開發了;

小葫芦

我覺得這個需求在分工上就衝突了
一個模組強依賴另一個模組,必然要進入等待

所以再細化你們的需求
User模組完成後就可以提交
此時你分支你的模組再繼續
你同事分支他的模組再繼續

這是標準流程

有個概念叫持續集成,越早進行集成操作對你們的代碼越有利
往下延伸的概念叫持續交付都是應付這種環境的 可以參考

我想大声告诉你

對於這種情況我建議這個方法:

feature/user 分支上开出一个新的分支 feature/user_login
feature/user 开发进入到可用的阶段时, 把代码往 feature/user_login 上合并
这样 feature/user_login 可以直接进行测试
feature/user_login 开发完毕后,合并到 feature/user
最后 finish feature/user

這樣是將 feature/user_login 作为 feature/user 的一个子功能开发的
如果再做功能的时候不是这样设计的, 那最好还是将 feature/user finish 后再开发 feature/login

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!