请教大家有关 git 工作流的问题

2020-09-11 10:26:57 +08:00
 gy0624ww

工作中遇到的情景是这样的

多人开发同一个项目,比如有 ABC 三个需求。(有可能涉及更改同一个文件) 这三个需求是提出间隔比较短,有一段时间是并行一起开发的,同时参与测试,但是上线日期可能不同。

首先,从 master 拉出各自的分支。每个人各自现在自己的本地环境开发,做完后把各自的分支打包到测试环境给测试。 测试人员也是多名,但是目前测试机就只有 1 台。

现在的问题就是前后端分离,后端是 go,打包的名字都叫 main,都是 80 转发到某一个端口(项目固定比如 8080 ) 前端一套环境,后端一套,然后多个需求就会面临 A 需求有时候就会把 B 需求的 main 覆盖掉才能进行测试。

不知道大家有没有遇到这种情况,都是怎么处理的。

之前想过大家都把分支合到一个测试分支 比如 develop,但是这个分支包含了多个需求,有可能不同需求直接会相互影响,测试测完之后,要根据上线的顺序再手动把改的代码合并到 master,这样容易出错,而且手动合并到分支也会造成版本记录的丢失。

也有想过每个需求都单独部署个独立的端口给前端,那么前端也需要同样根据不同需求部署多套,显然这样也很麻烦。

请大佬解惑

5785 次点击
所在节点    git
46 条回复
lecion
2020-09-12 10:53:33 +08:00
确实是一个普遍问题,目前我们部署了 10 个前端环境,后端是一个,因为后端多数是增加接口不会有兼容或者冲突问题,能解决 95%的场景了,剩余 5%就资源协调吧
gy0624ww
2020-09-12 11:14:05 +08:00
@realpg 恩 涉及冲突的可以安排先后顺序进行测试,不考虑有冲突。每个需求都是独立且同时开发的。然后几乎同时测试,但是测试周期和上线日期不同
gy0624ww
2020-09-12 11:22:58 +08:00
@afx 那就是说同一时间只有一个需求进行测试,开发并行开发完成后,依此合并分支提测。那么剩下时间只能等待了
angryfish
2020-09-12 11:43:24 +08:00
懒得弄多环境的话,让测试连开发电脑测试。
foam
2020-09-12 12:43:30 +08:00
谈谈我在我司的实践。
1. 服务器部署:
前端目录:将项目目录复制为 f1 、f2 、f3 ....
后端目录:将项目目录复制为 b1 、b2 、b3 ....
nginx 配置 f1.test.xx.com f2.test.xx.com f3.test.xx.com / b1.test.xx.comb2.test.xx.comb3.test.xx.com 到对应目录。ps. 如果后端只想用一个域名,可以。b.test.xx.com/1/api,然后 nginx 把 1 解析到对应目录,去掉 1,rewrite 一下 URI

2. 前端(客户端)配置后端环境
前端开发一个切换环境的组件,提供入口给测试同学输入数字切换环境。
例如安卓,长按某个页面元素,跳转到命令框输入,测试同学输入数字 n,那么把 n 保存到文件 /localStorage,后面发起
api 调用时,只需将数字拼接到 host 或 path,就能调用不同环境。并且,前端需要将“测试环境 1/2/3”标注在页面显眼的地方,让测试同学清除现在身处哪个环境。
后面后端水平扩展多个环境都可以,测试同学可以随意切换不同环境,不需前端改代码

PS. 前端发布线上版本的话,注意要将这个组件移除(编译脚本实现)

3. 测试同学 /产品
需要给这两位同学简单培训使用方法。并且在某个功能测试时,需要发布测试须知:
xx 功能,前端环境:2,后端环境:5


抛砖引玉~
gy0624ww
2020-09-12 17:07:30 +08:00
@foam 恩,多谢 很有启发

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/706044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX