Git 精选范围

mus*_*ium 3 git git-cherry-pick

我如何挑选 commitC4C5

\n\n

Git树

\n\n

我\xe2\x80\x99已经尝试过git cherry-pick C4..C5,但我只得到C4. \n我想我不\xe2\x80\x99真正理解这个范围的事情是如何工作的。

\n

tor*_*rek 6

TL;DR 版本:C4^..C5

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

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

与半开整数区间一样,通常的简单技巧是从后退一步开始。由于 的(第一个)父级C4C4^C4^..C5因此可以实现这一点,就像(2, 7]得到你一样3 4 5 6 7

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