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

浏览:37日期:2023-10-03

问题描述

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

问题1:

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

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

问题2:

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

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

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

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

问题解答

回答1:

由于你并未提及是否在同一个工程项目下进行开发; 这里我先假设你是同一个项目, 在阐述我的意思之前请你首先看一看下面这几点, 你是否都清楚:

git的节点之间是对等的

git支持ssh,http,file等协议

我的建议:

假设John和Jane两人合作开发同一个项目;

John创建一个项目demo, 该项目在它的个人目录下;

cd /home/John/demo/; git initgit add .git commit;

Jane如果和John在同一个开发机, 那么她可以直接在自己的home下clone出John的代码

git clone /home/John/demo/ #Jane应该具有该目录的权限

现在John可以继续开发, Jane也可以继续开发, 两人都可以持续提交;

git commit #Johngit 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就可以互相拉取对方的代码到自己的文件夹中; 愉快地开发了;

回答2:

我觉得这个需求在分工上就冲突了一个模块强依赖另一个模块,必然要进入等待

所以再细化你们的需求User模块完成后就可以提交此时你分支你的模块再继续你同事分支他的模块再继续

这是标准流程

有个概念叫持续集成,越早进行集成操作对你们的代码越有利往下延伸的概念叫持续交付都是应付这种环境的 可以参考

回答3:

对于这种情况我建议这个方法:

从 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

相关文章: