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

发布于 2022-09-02 01:43:20 字数 562 浏览 32 评论 0

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

问题1:

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

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

问题2:

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

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

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


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

少钕鈤記 2022-09-09 01:43:20

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

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

蝶舞 2022-09-09 01:43:20

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

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

这是标准流程

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

人心善变 2022-09-09 01:43:20

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

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

旧情勿念 2022-09-09 01:43:20

我的想法是这样, 你同事用cherry-pick将你的feature中被依赖的commit提取到他feature, 然后提交commit,说明因为依赖问题从哪里获取了新代码. 最终feature关闭的时候,如果产生冲突, 以你的代码为准即可.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文