[学习笔记]使用git rebase做分支差异化同步

在一个.NET 项目中,使用了Volo.Abp库,但出于某种原因,需要源码调试,因此,使用源码方式集成的项目做了一个分支archive-abp-source

其中引用方式变更操作的提交为:7de53907

后续,在master分支中,又新增了若干个提交,现在的目标是:把 master 分支中后续的所有提交,除了 7de53907... 这个 commit,合并到archive-abp-source分支。

这在 Git 中不是一个“标准的 merge”操作(Git merge 默认会把所有 commit 都合并)。不过,可以通过以下步骤达成这个目的:

基于 master 创建临时分支

git checkout master
git checkout -b temp-merge

使用交互式 rebase 删除指定提交

git rebase -i --rebase-merges <common-base-commit>

common-base-commit 是当前分支与 master 的共同祖先,比如用 git merge-base master archive-abp-source 找到。结果就是 <common-base-commit>,可用于 rebase -i 时指定起点。

如果你知道数量,也可以简单地 rebase 最近 20 次提交:

git rebase -i HEAD~20

然后在打开的编辑器中把 7de53907... 那一行改为 drop,保存退出即可。

在这里插入图片描述

切回目标分支,执行合并

git checkout archive-abp-source
git merge temp-merge

[可选]删除临时分支

git branch -d temp-merge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林晓lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值