选择一系列提交樱桃挑选或rebase --onto最终会得到相同的结果吗?

时间:2012-07-11 08:19:43

标签: git git-rebase cherry-pick

我有时想从不同的存储库中选择一系列提交。我知道有两种方法可以做到这一点。

1

git checkout myBranch
git cherry-pick begin..end

  1. git rebase --onto myBranch begin end
  2. 我发现第一个版本更容易记住。然而,我读了很多关于如果采摘与挑选相比,挑选樱桃是多么邪恶,因为它有点打破了历史。但我还没想到的是,如果在挑选一系列提交或用--onto

    重新定位它们之间存在差异

    我倾向于认为应该没有区别。我错了吗?

3 个答案:

答案 0 :(得分:1)

重新定位和挑选樱桃对于合并来说同样糟糕。它们都会导致忘记您提取的更改的原始提交的ID;因此,以后的合并可能会尝试多次应用相同的更改。

答案 1 :(得分:1)

这两个命令是等价的,你只是做正常的rebase会做的工作,以找出重放到目标分支上的未合并提交。

答案 2 :(得分:-2)

实际上,在这方面,挑选樱桃不比变基更糟。 Cherry pick将创建提交的副本,而rebase实际上会移动它们(从而重写历史记录)。

两者都更加邪恶然后合并,我认为这通常是最糟糕的选择。