在git-cherry中,“cherry”的含义是什么?

11
git-cherry中,单词cherry的含义是什么?
除了水果,我只在“cherry picking”表达中看到过这个词(也出现在git-cherry-pick的git中),这意味着有选择地挑选某物(对吗?)。
在我的看法中,“git-cherry”中的“cherry”既不与水果相关,也不与“cherry pick”相关。
我是巴西人,所以英语语言的微妙之处有时并不那么明显。

这个问题似乎不属于范畴,因为它涉及一个词的含义,而非编程。请尝试在 English.SE 上提问。 - George Stocker
@GeorgeStocker 英文版 Stack Exchange 不适合我,因为我并不是在询问 cherry 这个词语的意思本身;我是在问它在 git 中的上下文中的含义(即在那个 git 命令中的含义)。这个问题只有在这里才有意义。 - talles
Git没有重新发明“cherry”这个词,如果你是在问这个的话。单独挑选(cherry-pick)这个词的意思最好在English.SE上解释。 - George Stocker
请注意,在问题本身中我声明了 cherry-pick 这个词(甚至在我的问题中没有编辑)。但是,这个词只是简单的 “cherry”,这毫无意义。对我来说,它至少在使用 cherry picking 命令时没有意义,而只是一种检查我推送内容的方式(请参阅答案评论)。我最终学会了这个命令的目的与 git-cherry-pick 命令相关,这就是为什么出现了 cherry 这个词(然后在回答之后,这个词我才明白了它的含义)。 - talles
这种混淆是git的一个众所周知的特点(对于一些人来说,也是问题);git经常重复使用它的命令,有时候并不是那么明显(比如git checkout)。最终,如果你想关闭这个问题,我没关系,我已经得到了答案,也学到了我想学的东西。但请注意,这个问题不仅在English.SE上完全与主题无关,而且在不了解git的情况下也无法回答。 - talles
1个回答

14

这被称为cherry-pick,因为该任务就像摘樱桃一样。您需要查看一堆提交(在真实的树中是叶子和分支),并仔细选择其中一些提交。这个工作就像现实生活中的摘樱桃一样需要非常小心。

git-cherrygit-cherry-pick有关系。 git-cherry报告分支中不存在哪些提交。换句话说,它返回可以进行cherry-pick操作的提交,即哪些提交是“樱桃”(可以被摘取的)。


所以最终它与挑选有关。这并不像使用git-cherry-pick那样显而易见,但这是有道理的。 - talles
@talles,git-cherry-pick命令的作用是将另一个分支的提交合并到你的分支中。而使用git-cherry命令,则可以显示另一个分支中尚未合并到你的分支中的提交。使用git-cherry-pick时,你在摘取樱桃;而使用git-cherry时,你只是看到这些樱桃。不可否认,用git cherry pick作为子命令(即作为git branch namegit branch类似的子命令)可能更合理。 - Shahbaz
是的,很有道理。对我来说一开始并不明显,因为大多数时候我使用 git cherry 来检查我正在推送的内容(类似于hg的 outgoing 命令)。 - talles
@talles,哈哈,我从来没有想过要检查我正在推送什么。我通常会在合并之前检查我正在获取的内容,并使用git diff命令。因为这是我的本地分支,所以我一直认为我正在推送的内容是可以的。 - Shahbaz
不错的助记技巧。也许现在我能记住它了。 :-) - hillu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接