Git 分期合并后功能 Z 上的功能 X 变基

Git Rebase for feature X on feature Z after merge on staging

下面的问题如何Rebase,rebase是正确的解决方案吗? 我们使用 rebase 作为默认分支策略,唯一的合并发生在 MR normaly 中。

 A--B--C (staging)
        \
         D--E--F (x-feature)
                \
                 G--H--I (y-feature)

我有一个暂存分支,我在其中创建了一个 x-feature 分支,然后我为这个分支创建了我的 MR,但我需要实现的功能,所以我创建了另一个 y-feature来自我的 x-feature 分支。

如果我是对的,合并 MR 时它应该如下所示并且我的 y 特征挂起,因为 MR 分支在 MR 之后被删除。

 A--B--C--D--E--F (staging)
          
               \
                G--H--I (y-feature)

如何在不丢失数据的情况下将我的 y 特征重新附加到暂存分支?

如前所述,一切正常。 分支只是指向提交的指针(它们不指向其他分支),所以当x-feature分支合并到staging分支时,y-feature 分支仍将指向提交 I,并且 G 的父提交仍将是提交 F。那时 stagingx-feature 都将指向提交 F,如果 x-feature 分支被删除也没关系。

旁注:如果分支 x-feature 在合并到 staging 之前出于某种原因是 re-written,则提交 [=16] =] 可能不再存在于 staging 分支上。在那种情况下,您可能希望将 y-feature 变基到新的 staging 分支,使用类似于以下的命令:

git rebase --onto origin/staging F

这将在更新的 staging 分支之上重播提交 G、H 和 I。