请教 git 管理的一个问题
背景:一个代码仓库存在两个版本同时开发的场景,比如当前基于 develop 分支,拉了两个分支 dev_1.0 和 dev_1.1 。现在 dev_1.0 的功能开发完成了,测试也测试了,现网上线了。但是 dev_1.0 的分支没有合并到 develop ,导致 dev_1.1 上线的时候的代码没有包含 dev_1.0 的代码。
一般研发写完代码之后,只要测试不反馈问题,他们也不会去管后续的流程。最开始是组内通知大家,要记得把代码合并到 develop 。但是一个项目有好几个开发人员,靠人去做这件事情确实要花时间,你要跟进这个项目的进度。所以单纯的靠研发去做这件事情,也确实不合理。
现在的问题是,缺一个流程去做这件事情:代码上线之后把代码合并到 develop ,这件事情由谁来做,怎么做?
请教一下大家的公司是怎么做类似的事情的?
看了大家的意见,是发生产的时候要把代码合到 develop ,然后重新打包。我们这边是,测试测完之后,测试负责把他验证过的包推到生产环境。另外还有一个问题,发生产其实是先发灰度,比如现在基于 dev_1.0 打了包,发了灰度,然后有问题,还是会在 dev_1.0 上面继续开发并合并代码。
当然是组长了,发生产的时候就要合并分支了
打包要从 develop 分支打包,不在 dev_1.1 上打包
组员提合并请求合并到 dev,上线用 dev 的代码
dev_1.0 开发完成之后要合并到 develop 分支上,然后从 develop 分支发布上线
为啥要起 dev 1.0 1.1 这种混淆的名字呢devmain这是雷打不动的 2 个分支其他起名一律就叫 feature 或者 fix ,这种分支是不允许打包上线的。只能合并到上游
生产代码不在 develop 分支,直接 dev_1.0 就可以发布上线?
上线分支一定是一条固定的分支比如基于 main 拉出了两条开发分支,测试的时候可以各个环境用各个功能的开发分支,上线的时候一定是先合并到 main 分支,然后用 main 分支上线
测试也测试了,现网上线了。但是 dev_1.0 的分支没有合并到 develop 不允许非生产分支的代码部署到 prod 。cicd 的流程不明确。
这题不会,就从分支名和基于 develop 分支开发,管理就够乱的。我们 master 和 feature 分支管理,参考 workflow 。
#9 打错了,gitflow 模型
首先,一个版本先确定要更新的功能列表,然后,根据功能建分支开发,如果模块间相对独立,可以在测试环境分别部署测试,如果存在前后依赖就需要都完成再测试。在上线前,需要将所有的功能合并到主分支,然后做回归验证,确定符合预期再上线。
所有的代码改动,无论是新功能开发,还是线上 bug 修复,都先进主干分支,再进发布分支
dev_1.0 是基于 dev 拉下来的,你最后上线应该合并到 dev 上去,上线 dev 的代码
至于谁做这件事情,建议是偏技术,对功能模块、模块间数据交互都比较了解,甚至这个人可以在合并代码做代码审查,总之这个人可以对整个服务负责。
要么人工来操作合并。要么使用 gitlab ,github 走 issue+ MR/PR 流程(半自动合并)
基于 develop 开发新功能分支 dev_1.0/ dev_1.1...,然后 dev_上线了,那自然应该把 dev_合并回 develop ,谁开发谁负责合并回去,因为如果此时有冲突,只有负责这个新分支的人能处理。
如果不是多版本并发模式,而是单版本滚动模式,那就规定上线代码必须从 main 主分支拉出。任何新功能、fix 都必须从 main 分出,测试完毕后合并回主分支。
测试验证通过了合并到 master / main 分支,develop 发生产不对经吧。 你看看 git 的 workflow 。分支规范是 feat-, bugfix
组长来操作合并,merge 代码到 develop ,我在公司就是做这个事情的。人工操作起来确实挺繁琐的,但是不会出什么大问题,这个人需要熟悉系统工程,有冲突了也可以解决;也尝试过给开发人员各自操作,但是会出现问题,或者难以管理
这里,其实你的 dev 分支其实就是 master dev_1.0 和 dev_1.1 就算 feature/1.0 feature/1.1我司的流程是 从 master checkout 出来 feature/1.0 feature/1.1 (不一定一定从 master checkout ,只要是 feature 包含 master 的代码即可)然后 feature/1.0 开发完成,如果他不依赖 feature/1.1 里面的功能,则测试完成上线就直接合并到 master 线上打包发布 master 然后 feature/1.1 merge master ,1.1 开发完成在 merge 到 master 打包上线
release 和 develop 分支,这样取名我感觉好一些
这难道不是最基本的产品质量管理流程?生产那边任何上线的东西都应该是只能出自 master 分枝,甚至会有一些组织单独做一个 release 分支提交生产上线。怎么能让开发人员自己就随随便便把 develop 乃至自己手头的东西提交给生产呢?
上一台 Windows 电脑经常各种故障。8G 内存也比较卡。之前也安装过黑苹果。有一些小问题最后没怎么用 MacOS 了。 预算 3K 。想买一台主机,用来 iOS 端开发,…
Gotcha Rest Client 是我之前开发的一个 API 接口测试工具,因为同类产品基本都是免费的了,加上推广也非常困难,最终决定和 insomnia 一样走开源免费的…
感觉买台只刷机给力的安卓机不符合 2025 年。 还是 pixel 刷其他 ROM 后,相机提升不少? 一加 1+ 一加 S23 U 一加 13 ,买起来 …
合速度