Git cherry-pick 范围

标签 git git-cherry-pick

我如何挑选提交 C4C5

GitTree

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

最佳答案

TL;DR 版本:C4^..C5

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

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

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

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

关于Git cherry-pick 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845096/

相关文章:

git - vbcs.cache/edb.log 被 Visual Studio 2015 锁定

git - Git 中有某种反向挑选吗?

git - 在Git cherry-pick或rebase merge 冲突中,如何确定BASE(aka “the ancestor”),LOCAL和REMOTE?

git - 为什么 git-cherry pick 什么都不说?

git - 在没有配置的情况下使用 git

git - 在没有先前提交的情况下,如何将特定提交推送到远程?

git - git中的存储库和分支有什么区别?

git cherry-pick --continue, '--no-edit' 选项?

git - 为什么“cherry-pick”会导致 git merge 丢弃我的部分提交?

git - pull 请求和分支有什么区别?