团队协作 - 在git flow中如果有人需要我写的feature作为依赖怎么办?
伊谢尔伦
伊谢尔伦 2017-05-02 09:28:14
0
3
789

例如,我在开发 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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板