【Git】sourcetree如何使用rebase操作(变基)
创始人
2025-05-31 08:02:52
0

注:接下来的演示操作仍将以SourceTree这个可视化工具为例。

个人感觉rebase这个功能有点多余,其实merge操作已经覆盖了它的功能。可能就是为了让整个commit看起来更顺畅一下,没有那么多的旁路分支,不那么杂乱。虽然个人不是很喜欢这个功能,但是很多开源库的作者再你提pr的时候都会要求你rebase到它最新的master分支上,这样作者评审代码的时候可能会更方便。

所以在这里给大家介绍下如何将某个分支rebase到另外一个分支上。

操作步骤

假如有如下的分支结构,我们希望将test分支rebase到master分支上。
在这里插入图片描述

首先需要确保master和test分支的代码都是最新的代码(没事git pull一下),而且当前分支是test分支
然后,我们在master的M-A 这次最新的提交上,右键点击【Rebase children of xxx interfactively】,如下图:
在这里插入图片描述
在这里我们可以选择是否需要将4次commit合并为1次commit,如果需要则点击【Squash with previous】即可,具体操作可见这篇文章的第11小节。在这里我们不合并就直接点击OK,如下图:
在这里插入图片描述
点击之后一般都会有冲突,如下:
在这里插入图片描述
不用担心,点击Close关闭弹框即可,然后使用source tree解决冲突。在这里有一点需要特别注意
在这里插入图片描述
rebase解决冲突时,与我们常规的merge解决冲突的Theris和Mine是反的。即这里的Theirs代码的是test分支上的内容,Mine代表的是master分支上的内容

解决完冲突之后,不要进行commit,保持你是如下这样的页面:
在这里插入图片描述
然后打开git命令行工具,可以看到提示说:所有冲突都解决了,请使用git rebase --continue命令。
在这里插入图片描述
那我们就输入这个命令即可,如何还是有冲突继续解决冲突。当没有冲突时,会告诉我们rebase已经成功了,如下图:
在这里插入图片描述
此时我们就可以看到现在的test已经rebase到了master上(只是本地rebase好了,还并没有推送到远端哦):
在这里插入图片描述
但是这里又需要我们特别注意:git告诉我们本地的test分支与远端的test分支不一致,需要我们先把那5个提交pull下来,这里一定不要pull,否则就会额外多了一个merge操作。 ( 不过如果你的test分支远端不存在的话(都是自己本地提交的),则不会有这个问题,在这里直接git push上去就行。)

所以在这里使用git push --force直接强推上去。
在这里插入图片描述
rebase完成。

Q&A

Q1: 如果我之前已经习惯了使用merge,我自己的test分支上有很多提交都是从其它分支上merge过来的,而且已经解决了不少的提交。现在要rebase到master上肯定这些冲突还会再次出现,只能一个个手动解决吗?

A: 非也,可以基于当前test创建一个临时分支,将这个临时分支rebase上去。创建临时分支的操作如这里的3.1小节所介绍。这里简单解释下操作(首先保证当前分支为test分支):

//创建临时分支
git checkout --orphan tmp//添加所有并提交
git add .
git commit -m "创建临时分支并本地提交"

将tmp分支rebase到master即可,你会发现冲突很好解决,基本使用【Resolve using “Theirs”】就可以。

Q2: SourceTree这里的rebase是什么意思?与下面的rebase有什么区别?
在这里插入图片描述
A2: 本质行一样,没什么区别。下面的哪一个功能更丰富一点,可以让我们选择是否要【Edit Message】和【Squash commits】。

Q3: rebase过程中,后悔了咋弄?不想rebase了。
A3: 执行git rebase --abort就行,恢复的干干净净,不会影响你的代码。

相关内容

热门资讯

常州法院2025年前三季度调解... 调解结案16474件、调解成功率24.08%——这是2025年前三季度常州法院交出的司法成绩单。通过...
安徽省政协研究室副主任陈鑫已任... 据铜陵市政府官网消息,11月20日上午,市委举行理论学习中心组学习会议,邀请省委社会工作部副部长高维...
原创 联... 据光明网报道,11月19日,在联合国大会的讨论中,日本企图争取成为安理会常任理事国的梦想再次破灭,令...
南部关于全县规范法律咨询服务机... 一、专项行动时间 自即日起至2025年12月。 二、举报受理范围 社会各界反映强烈的某些法律咨询服务...
“男子持刀入室盗窃”视频引发关... 近日,一段疑似“小偷”入室盗窃被业主家中监控拍下的视频在网上引发关注。11月21日晚,“翠屏公安”微...
绝不允许日本军国主义幽灵复活!... 2025年11月7日,日本首相高市早苗宣称,如果中国大陆对台湾出动军舰并使用武力,可能会构成“存亡危...
【解决】AI法律助手荣获202... 2025全球数字经济大会启幕,搭建国际数字合作高端平台 经国务院批准,由北京市人民政府、国家互联网信...
嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...