- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 git 分支看起来像这样:
master-*-*-*-*-*-*-implement_x
\ \-*-further_foo_fixes_that_depend_on_x
\ \-*-*-further_bar_fixes_that_depend_on_x
\
\-implement_x_rebased
它以这种方式结束,因为我认为我的分支 implement_x
将按原样 merge 到上游,但我被要求将其压缩为单个提交,因此 implement_x_rebased
.但是,在等待 implement_x
merge 的同时,我已经启动了几个分支以进一步修复和开发这取决于我的工作。
现在我想对 implement_x_rebased
的进一步工作进行 rebase 。我认为这是一个空操作,因为 implement_x
和 implement_x_rebased
处于完全相同的状态 - 不会有 merge 冲突,只是应用 implement_x 之间的更改
和 further_foo_fixes_that_depend_on_x
等在 implement_x_rebased
之上。然而,git 似乎并不那么聪明,它试图从基础开始一直 rebase ——引入不必要的 merge 冲突。
我认为最简单的方法是对 implement_x
的进一步修复进行 rebase 和压缩,然后将它们存储起来,并将存储应用到 implement_x_rebased
,但我很好奇是否有有什么正确的方法可以让 git 意识到 implement_x
和 implement_x_rebased
实际上处于相同的状态?
最佳答案
这似乎是 git rebase
的 --onto
选项的任务。
git rebase --onto implement_x_rebased implement_x further_bar_fixes_that_depend_on_x
您可能想看看 git rebase manual 中的 --onto
示例.
关于git - 如何在已经 rebase 的分支上 rebase ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445747/
我是一名优秀的程序员,十分优秀!