6

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

1.

git checkout myBranch
git cherry-pick begin..end

或者

  1. git rebase --onto myBranch begin end

我发现第一个版本更容易记住。然而,我读了很多关于挑选樱桃与合并相比是多么邪恶的文章,因为它有点打破了历史。但是我还没有弄清楚的是,在挑选一系列提交或使用 rebase 之间是否有区别--onto

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

4

3 回答 3

1

变基和挑选对于合并来说同样“糟糕”。它们都会导致忘记您选择的更改的原始提交的 ID;因此,以后的合并可能会尝试多次应用相同的更改。

于 2012-07-11T08:22:47.040 回答
1

这两个命令是等价的,你只是在做一个普通的变基会做的工作,以找出未合并的提交以重播到目标分支。

于 2012-07-11T08:32:41.713 回答
-2

实际上,在这方面,摘樱桃比变基更邪恶。Cherry Picking 会创建重复的提交,而变基实际上会移动它们(从而重写历史)。

两者都比合并更邪恶,在我看来,这通常是最糟糕的选择。

于 2012-07-11T08:22:51.933 回答