从另一个功能中重构功能来开发

问题描述 投票:0回答:1

好吧,我正在做一个大学项目,我们使用git,我们有一个规则,每个功能使用自己的分支,完成后合并到develop。我的同事从另一个特性分支开始了一个特性分支。这个特性(特性2)与特性1的分支没有联系。

             I    <-feature3
            /
A--B--C----H      <-develop
    \     /
     D---E--F     <-feature1
             \
              G   <-feature2

现在我的特性中需要提交G的东西,所以我把它合并到特性3中,然后才意识到这样做会得到提交F的东西(我以为它应该是基于开发的)。

             I--J   <-feature3
            /   |
A--B--C----H    |   <-develop
    \     /     |
     D---E--F   |   <-feature1
             \ /
              G     <-feature2

所以现在提交J包含了提交F和G(而且这张图显示的是原始状态,而不仅仅是本地回购)。有没有办法把特性2重写成下面的图,而特性3失去提交F?

              I--J  <-feature3
             /  /
            /  G    <-feature2
           /  /
A--B--C----H-/      <-develop
    \     /      
     D---E--F       <-feature1

另外,这个变化可以推送到原点吗?

git rebase
1个回答
0
投票

听起来你描述的是一个cherry-pick。它并没有像你的最终图那样做,但是,那个图似乎没有必要精心设计。G的cherry-pick确实能抓住从F到G的变化,并把它们贴在J之后,这听起来像是你真正想要的。

© www.soinside.com 2019 - 2024. All rights reserved.