找回密码
 立即注册
首页 业界区 安全 [学习笔记]使用git rebase做分支差异化同步 ...

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

嗳歉楞 2025-6-9 20:02:39
在一个.NET 项目中,使用了Volo.Abp库,但出于某种原因,需要源码调试,因此,使用源码方式集成的项目做了一个分支archive-abp-source
其中引用方式变更操作的提交为:7de53907
后续,在master分支中,又新增了若干个提交,现在的目标是:把 master 分支中后续的所有提交,除了 7de53907... 这个 commit,合并到archive-abp-source分支。
这在 Git 中不是一个“标准的 merge”操作(Git merge 默认会把所有 commit 都合并)。不过,可以通过以下步骤达成这个目的:
基于 master 创建临时分支
  1. git checkout master
  2. git checkout -b temp-merge
复制代码
使用交互式 rebase 删除指定提交
  1. git rebase -i --rebase-merges <common-base-commit>
复制代码
common-base-commit 是当前分支与 master 的共同祖先,比如用 git merge-base master archive-abp-source 找到。结果就是 ,可用于 rebase -i 时指定起点。
如果你知道数量,也可以简单地 rebase 最近 20 次提交:
git rebase -i HEAD~20
然后在打开的编辑器中把 7de53907... 那一行改为 drop,保存退出即可。
1.png

切回目标分支,执行合并
  1. git checkout archive-abp-source
  2. git merge temp-merge
复制代码
[可选]删除临时分支
  1. git branch -d temp-merge
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册