git - rebase 依赖主题分支

标签 git rebase

我在 git 中使用了很多本地主题分支,有时最终主题分支之间的依赖关系会导致 rebase 问题。例如,结构如下:

master ---> featureA ---> featureB
                     \--> featureC

如果 master 发生变化并且我在 rebase featureA 时遇到(并解决)冲突,然后再将 featureB rebase 到 featureA 会触发相同的冲突(有时还会引发新的冲突),因为它会尝试重新应用来自 featureA 分支的补丁。假设如果精心挑选,featureAfeatureB 之间的实际补丁将干净地应用,那么在这种情况下是否有一种方法可以进行与 cherry- 大致相同的效果选择 featureAfeatureB 之间的所有提交?

最佳答案

rebase featureA 后,你可以做

git rebase --onto featureA oldFeatureA featureB

假设 oldFeatureA 表示在您对其进行 rebase 之前在 featureA 顶端的提交(您可以在那里保留另一个分支,或者只记住提交哈希)。

这基本上应该与将 A 和 B 之间的每个提交挑选到 A 的 rebase 版本上基本相同。

Documentation on git-rebase (包括对一些更复杂的 rebase 操作期间发生的事情的一些有用的图片解释)

关于git - rebase 依赖主题分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546666/

相关文章:

svn - 从给定时间点导入 svn 仓库到 git

git - 有没有办法将 Git 限制为稀疏 checkout ?

git - 这些 git 符号是什么意思?

git - 如何更新历史被重写的git子模块

svn重新设定基准并丢失历史记录

git - Jenkins 在发出 pull 请求后禁用分支上的项目构建

git - 如何正确地使用 Git 进行分支和 merge ?

git - git rebase 可以完全删除远程历史记录吗?

Git - 推送时自动 rebase

git - 间歇性 git 错误 : "Cannot rebase: You have unstaged changes."