登录

团队协作 - 在git flow中如果有人需要我写的feature作为依赖怎么办?

例如,我在开发 feature/user 用户管理模块,提供用户的名称,信息等等, 我的同事在开发 feature/login 登录系统,他需要我的用户模块来检测是否可以登录,获取用户信息等等。

问题1:

假设我已经完成了用户系统,那么怎么给我的同事让他使用?

难道是我先 finish, 同事再 finish, 同事再 start 么?不太现实。

问题2:

假设我没有完成用户系统,但是我完成了同事所需要的内容,那怎么给他使用?

难道是我先 finish, 同事再 finish, 我和同事再 start,分别继续开发么?

这些有什么好的解决方案么?


补充:首先主要是时间太紧张了,一个人肯定写不来,所以要多个人一起,可是多个人又会牵扯依赖问题。所以想知道如何解决这个问题。

# Git
伊谢尔伦伊谢尔伦2163 天前515 次浏览

全部回复(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
  • 取消回复发送