使用git rebase对樱桃挑选提交有什么影响?

时间:2014-09-24 17:38:47

标签: git

假设我使用git cherry-pick在我的分支中选择一些提交。在那之后,让我们说我将我的分支重新绑定到我的父分支上以获取最新信息。 git还会在内部记住这些提交已被挑选出来吗?这很重要,因为当我将我的分支合并回我从中挑选的父分支时,我不希望这些提交变成愚蠢的冲突。

我的例子一步一步:

  1. 从分支B
  2. 创建分支A
  3. 提交是BA
  4. 使用A
  5. 将提示从分支B提取到分支git cherry-pick A
  6. 使用BA已签出)将git rebase A重新投放到B
  7. 运行git cherry时会发生什么?它会显示我所选择的提交(这意味着它不再记得提交是樱桃挑选的)吗?
  8. 如果在rebase之后结束了cherry-pick关系,rebase中的-p选项会修复它吗?或者是否有其他解决方案可以避免它?

1 个答案:

答案 0 :(得分:1)

在琐碎的情况下不会显示冲突 - 选择的更改不受重新定义的更改影响(同一行范围内没有变化)。

在所有其他情况下都会发生冲突。

找出,将会发生什么的唯一方法是尝试这样做(在一个单独的分支中)。

以下是book解释:

  

如果上游分支已包含您所做的更改(例如,   因为你邮寄了一个上游应用的补丁,然后那个   提交将被跳过。例如,在上运行git rebase master   以下历史(其中A'和A引入相同的一组   更改,但有不同的提交者信息):

      A---B---C topic
     /
D---E---A'---F master
     

将导致:

               B'---C' topic
              /
D---E---A'---F master