搜尋

首頁  >  問答  >  主體

團隊協作 - 在git flow中如果有人需要我寫的feature作為依賴怎麼辦?

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

問題1:

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

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

問題2:

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

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

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


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

伊谢尔伦伊谢尔伦2766 天前781

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-05-02 09:30:14

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

    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就可以互相拉取對方的程式碼到自己的資料夾中; 愉快地開發了;

    回覆
    0
  • 高洛峰

    高洛峰2017-05-02 09:30:14

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

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

    這是標準流程

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

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:30:14

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

    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

    回覆
    0
  • 取消回覆