有时候我们有一个分支a,里边包含了提交a1->a2->a3->a4->a5等。然后我们又有一个分支b,里边包含了提交a1->a2->b1->b2->b3,现在我们想把分支a中的a3,a4,a5版本复制到分支b上,我们应该怎么办呢?
我们可以使用cherry-pick 三次,分别将a3,a4,a5复制到b上,但是如果我们需要cherry-pick的提交数量达到10个以上怎么办呢?其实cherry-pick支持自动多个连续的饿提交复制。
方法如下:
现在在b分之上,然后
git cherry-pick a3^..a5
上述命令会把a3和a5之间的所有提交都复制到当前分支上。
上述命令等同于:
git cherry-pick a2..a5
cherry-pick的区间遵从前开后闭的原则, (a2, a5],也就是说不包含a2,包含a5。所以你会看到我们使用了a3^来表达a3的父亲节点。