水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:git merge和git rebase到底有啥区别?
2楼
|
DoorWay
|
2022-03-20 08:33:22
|
展开
只把C的h,i合并到A,首先这是个病态的需求,因为h, i可能以来f,f可能依赖e,合不上。
如果确定h, i是独立的commit,不依赖 b c d e f,
1 c分支rebase B,生成b e f g h i 的历史
2 向B发merge request。不过看你这野路子,直接切换到B分之,merge C即可。del C
3 重点,在B上rebase -i,调整下 h i的顺序,生成 (h i) b e f g的历史
4 次重点,切换到master上,merge B:i ,只合并到某次提交。
A不应该知道C的存在。
语义上,注意不是技术上,merge表示feature分之开发完成,主分支接纳
rebase只是个技术手段,一个场景,次分支自己解决合并冲突,然后通知主分支合并;二是日常拉取远端时,git pull —rebase,不想造成无所谓的合并。核心还是1,自己解决远端的变化。
【 在 iStudy 的大作中提到: 】
: 我说一个场景
: A,B,C三个分支,A是主分支,相当于master
: B从A拉出,C从B拉出,
: ...................
--
FROM 61.185.159.*
4楼
|
DoorWay
|
2022-03-20 08:34:58
|
展开
2.把B,C所有改动都合并到主分支A,用rebase和merge分别怎么做?
——固定的模式,1 次分支rebase on 主分支,2 主分支merge 次分支。
※ 修改:·DoorWay 于 Mar 20 08:36:06 2022 修改本文·[FROM: 61.185.159.*]
※ 来源:·水木社区
http://m.mysmth.net
·[FROM: 61.185.159.*]
修改:DoorWay FROM 61.185.159.*
FROM 61.185.159.*
8楼
|
DoorWay
|
2022-03-21 12:05:40
|
展开
A不应该知道C的存在。因为不是从C切出去的。
祝你开心。
【 在 iStudy 的大作中提到: 】
: 你这个太乱了。
: 如果是我, 我肯定
: 1.C直接(merge还是rebase?)合并到A
: ...................
--
FROM 113.137.164.*
17楼
|
DoorWay
|
2022-03-21 19:40:12
|
展开
C合回A排除病态的需求后,从A切出一个新分支,common_bug_fix,称为D
D cherry pick C 的最后两次提交
A merge D
B rebase A
A merge B
日常开发,公共feature提交到公共分支,master,一般叫基线产品,也有叫中台的。
A 和B都能release,说明只是两个不同的产品线。
任何分支只合并从自己切出去的分支。永远只有两步:
次分支rebase主
主分支合并次
【 在 iStudy 的大作中提到: 】
: A,B都是可以release的
: 一些客户需要B上的feature,所以B也是要release的
: C是B分支上的客户报的bug,所以从B拉的bufix分支C
: ...................
--
FROM 113.137.164.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版