git 多个 brach 如何管理

2020-12-09 20:40:18 +08:00
 faker1

目前遇到的问题有 6 个 branch 很久之前从 master 分出,其中每个 branch 共通的代码有 60%.其余的都是定制化的一些内容,现在想把这些 branch 收回做一个管理,切换分之 fix,代价太大, 有同学可以提点下思路?项目是 golang,以及合并之后如何做 relase 谢谢

2052 次点击
所在节点    问与答
21 条回复
yjxjn
2020-12-09 20:53:09 +08:00
既然很久之前就从 master 分出,那就直接从 master 上 pull 呗,然后看看有没有冲突,解决完冲突 commit 之后,push 到远程分支,提 mergerequest 就完了。
faker1
2020-12-09 20:57:30 +08:00
@yjxjn 对于多个 branch 每个对于 func ABC 的实现是不一样的,那这个时候如何保留,
faker1
2020-12-09 20:59:38 +08:00
可能最中还是要一个 baseline,然后其余的独特性,需要特殊处理,如何处理,对于开发人员是友好的,比如编辑器能识别到准确的
faker1
2020-12-09 21:01:58 +08:00
顺便再问下,如何在多个 branch 中,找到大家共同的那个起始点,我搜了下只看到 merge base
ferock
2020-12-09 21:08:46 +08:00
远古分支,合并当前的 master 毫无意义。
何况这样的分支,当时就应该走 fork 路线。


只有 60% 的吻合度,已经可以视为衍生版本了。参考,mysql 和 MariaDB
faker1
2020-12-09 21:11:32 +08:00
@ferock 60%是需要频繁的 fix/add new code,维护多 branch 代价太大
yjxjn
2020-12-09 21:13:16 +08:00
@ferock 看楼主这种开发模式,使用 git 简直用了个寂寞。。。
yjxjn
2020-12-09 21:15:04 +08:00
@faker1 留下想要的呀,既然功能是 ABC 三种实现方式,就留下一种不就行了。。。。merge 的时候,把不用的删掉就行。
faker1
2020-12-09 21:17:39 +08:00
@yjxjn 每个 branch 的实现都需要保留
faker1
2020-12-09 21:18:01 +08:00
@yjxjn 啥意思
fafa2npu
2020-12-09 21:19:22 +08:00
对于 60%的共用代码单独起一个 repo 作为 base repo,在其他 repo 里引用 base repo 中 build 出来的 package 。
faker1
2020-12-09 21:21:20 +08:00
@fafa2npu 这个是有难度的,比如 baseline repo.A 的实现是不能暴露出来的,到时有的 branch 又用到了,,,,
fafa2npu
2020-12-09 21:21:38 +08:00
@fafa2npu 但这样需要一些成本重构代码,将共用代码分离出来。
faker1
2020-12-09 21:21:54 +08:00
package 的拆分也是一个思路,
beidounanxizi
2020-12-09 22:19:47 +08:00
不要走各种分支 就一个 master 分支可以了 hotfix bug 修复 都往 master 合并 master 的上生产河预发 个人分支可以在 dev 环境发 清晰明了
xupefei
2020-12-09 23:02:42 +08:00
这个问题我司也遇到过,解决方案是聘请一位高人解决冲突,然后跑集成测试。
CEBBCAT
2020-12-09 23:23:04 +08:00
@xupefei 还有这样的专职人员吗?长见识了
faker1
2020-12-09 23:40:53 +08:00
@xupefei 可以稍微介绍下咋做的?
xupefei
2020-12-10 00:33:08 +08:00
@CEBBCAT 不是专职人员,而是公司里一个级别很高的开发。这个人要对系统里的任何地方都很熟悉。
找到这样一个人,给他三周,搞定。

没啥特殊的做法啊,就是一个组件一个组件肉眼 merge,每弄完一个组件就测一遍
SergeGao
2020-12-10 09:29:36 +08:00
master 作为 upstream repo,只负责所有分支的公共部分,abc 各起一个仓库,公共部分有更改在 upstream 仓库改,然后下游仓库去拉,非通用部分就在各自仓库改

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

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

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

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

© 2021 V2EX