2

我怎样才能挑选提交C4C5

GitTree

我试过git cherry-pick C4..C5了,但我只得到C4. 我想我真的不明白这个范围是如何工作的。

4

2 回答 2

3

TL;DR 版本:C4^..C5

除非命令对其进行特殊处理(并且git cherry-pick没有),否则范围表达式的意思是“获取所有由右侧名称标识/可找到的提交,减去所有由左侧名称标识/可找到的提交”。在这种情况下C5,标识提交 0 到 5(含),并C4标识 0 到 4(含)。从第一组中减去第二组提交只剩下C5.

另一种看待它的方式是,如果提交是相关的,你会得到一个“半开区间”,就像 中的整数(3, 7]一样4 5 6 7

与半开整数区间一样,通常的简单技巧是从一步开始。由于C4is的(第一个)父级C4^C4^..C5这样做的伎俩,就像(2, 7]得到你一样3 4 5 6 7

(如果没有父级,则此操作失败,即左侧是根提交。在这种情况下,您需要一些替代策略。有些命令使这更容易,有些则更难,但现在我们可以忽略这个问题。:- ) )

于 2015-04-24T10:43:19.693 回答
1

在这种特定情况下,您不需要使用范围。

示例来自man git-cherry-pick

 git cherry-pick master~4 master~2
           Apply the changes introduced by the fifth and third last commits pointed to by master and create 2 new commits with these changes.

所以对你来说:

git cherry-pick C4 C5
于 2015-04-24T10:43:44.547 回答