当所有人的开发都在同一个分支,而本次投产只投该分支的部分新增代码时,你怎么处理?

2023-11-02 13:13:28 +08:00
 jokechen

今天晚上投产,所有需要投产的代码要合并到名为“231102”的分支上,然而大家都在一个名为“230915”的分支上做开发,部分功能还没有开发完,只能把开发完的代码从 230915 分支合并到 231102 上,请问有什么相对快捷又不影响他人开发的分支合并方法吗?

我上午的时候,在本地把 230915 分支代码向 231102 分支代码进行合并,遇到冲突的时候,只把我自己的代码合并过来了,其他人新写的代码没有做迁移。但是我代码尚未提交到远程库,这导致如下问题:

  1. 我自己代码合并过来后,发现有两个类没有正确合并,也就是说冲突处理出现了错误,所以想着再做一次 merge ,结果由于我刚刚已经处理过一次冲突了,git 直接把这两个类给跳过了,没有办法再进行下一次合并。
  2. 由此联想到,其他人想要合并自己的代码到生产分支,也会出现第 1 点问题,由于冲突都被我处理过了,所以代码没有办法合并过来。会对别人有影响。
1663 次点击
所在节点   版本控制系统
22 条回复
ryd994
2023-11-02 19:59:40 +08:00
@byte10 “cherry-pick 问题多多,容易出现漏掉” backport 的时候我就是不想要某些 commit
另外,你用法可能错了,cherry-pick 是可以一次性指定一段范围的 commit ,会一个一个 pick 过去。和 rebase 效果类似但是方向相反。
byte10
2023-11-03 09:34:16 +08:00
@ryd994 你说的 merge 和 rebase 的区别 是对的。但是 cherty-pick 有一个非常大的问题,无法判断 2 个分支的差异。也就是说你无法判断 A 分支包含了 B 分支的多少个 commit 点,要人肉的去比对,cherty-pick 非常破坏整个分支管理流程,一般在 hotfix 流程上会有场景使用。经常使用这个操作的话,最终无法判断 2 个分支是否有缺漏。

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

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

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

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

© 2021 V2EX