git Cherry从一个重新定基到不同提交的分支中挑选一个提交会比预期的拉入更多的历史

46scxncf  于 12个月前  发布在  Git
关注(0)|答案(1)|浏览(82)

我有一个分支结构如下。3个分支机构。

a - b - c - d  *main*
     \
      e - f    *feature1*
           \
            h  *feature2*

我最初开发的是feature1,然后我开始开发feature2feature2实际上并不依赖于feature1的代码更改,但我希望能够一起测试它们。计算feature1将在feature2之前到达main
计划有变。现在feature2将首先出现。所以我想做的基本上是cherry-pick提交h到main。
当我看h的差异时,它是完美的。h上的变化正是我所希望的。同样,从代码的Angular 来看,feature1feature2并不相互依赖,只是从测试/开发的Angular 来看。
问题是,当我在main上尝试在提交h中提交cherry-pick时,它不仅仅带来了提交h。Commit ef也在其中。我不认为它们实际上在那里,但是因为行有合并冲突,当我解决这些合并冲突时,e和f在那里。
为什么会这样?我该怎么解决这个问题?有一些要求的分支,你是樱桃采摘/从。

uplii1fm

uplii1fm1#

您应该能够执行以下操作之一:

  • 从主
git cherry-pick -x h
  • feature2
git rebase --onto main f feature2

第二种方法可以工作,如果你有更多的不仅仅是h,不想做多个樱桃采摘。它会将h'和feature2上h'之后的任何其他提交放在main上的d之上。
第一个命令应该将基于h的提交h'选择到d'之后的main上,并且应该在提交消息中指出它来自哪里,这对许多人来说很方便。

相关问题