功能 A 完成,但未上线。开始搞功能 B,但同时 B 里又需要 A 里的一部分代码

2022-12-20 11:42:54 +08:00
 hO0O0

各位遇到这种情况时,一般是从主分支上切一个新的,还是就在 A 的基础上切一个分支来搞?

3536 次点击
所在节点    git
16 条回复
shenyu1996
2022-12-20 11:47:17 +08:00
后者吧,但是要同步 rebase A 的后续更新
Rache1
2022-12-20 11:58:37 +08:00
A 未完成,就要考虑 A 已经修改过的部分对现有的业务是否会有影响, 如果没影响,那你自然可以基于 A 分支创建 B 。

但是如果有影响,那如果你的 commit 足够细,cherry-pick 或许可以

不过,如果需要的那部分代码不是很多的话,C/V 也何尝不可。
XiLingHost
2022-12-20 12:00:04 +08:00
先做 mock 吧,这是功能模块切分的不够好
renmu
2022-12-20 12:01:07 +08:00
主分支切,然后复制黏贴
renmu
2022-12-20 12:02:14 +08:00
因为你并不能确认功能 a 会比功能 b 先发
msg7086
2022-12-20 12:03:22 +08:00
把提交拆开,在含有 A 的提交之后分叉再继续开发。

另外也可以用开关把 A 功能的其他部分先禁用掉,然后局部打开 feature flag 测试再在生产上启用。
xuyang2
2022-12-20 12:46:53 +08:00
把 A 里的这一部分代码 单独拆个 PR 合了
agmtopy
2022-12-20 13:08:24 +08:00
切主分支吧,保险起见,上线了未经测试的代码,锅是自己的
xzysaber
2022-12-20 13:28:00 +08:00
所以需要多提交,不要写一大堆再提交。cherry-pick 是一种选择。
ChefIsAwesome
2022-12-20 14:34:37 +08:00
把 a 重构,拆成模块。
kaedeair
2022-12-20 16:24:03 +08:00
主分支切新的,然后从 A 的提交 cherry-pick 需要的进来
brader
2022-12-20 16:47:00 +08:00
你有信心 A 功能会先于 B 功能上线,就直接从 A 切分支,不然你会头大,产品和你说 B 功能先上的话,你会发现 B 里面掺杂了 A 的代码,出问题怎么办。。。
NathanDo
2022-12-20 17:19:57 +08:00
给 A 功能加个开关
xiaojie668329
2022-12-21 12:15:34 +08:00
先确定哪个先上线。
lazyfighter
2022-12-22 09:42:55 +08:00
cherry-pick
unco020511
2022-12-22 10:52:57 +08:00
得看是否已经测试通过(上没上线不是关键),如果 A 已经测试通过,那就说明 A 已经稳定了,当然可以 rebase.
反之,就只能将公用部分先 pick 过来用

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

https://www.v2ex.com/t/903688

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

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

© 2021 V2EX