【发布时间】:2013-06-28 14:34:54
【问题描述】:
我在一个不同的分支上有一个提交,它只是在一个新目录中添加了一堆文件。
假设提交的 ID 为 123456,它添加了一个名为 foo 的目录,里面装满了东西。
现在在我的另一个分支中,从一个干净的工作树中,我执行git cherry-pick 123456,希望它只添加foo 目录。
但是没有!樱桃挑选失败并包括对其他文件的大量其他更改(!)给我未合并的路径。
那么,你挑选的提交肯定包含一些你不知道/不期望的东西吗?好吧,不,git show --oneline --name-status 123456 | grep -v foo 什么也不返回。也就是说,foo 之外的任何文件都没有发生任何变化。
发生了什么,我如何才能正确选择此提交?
【问题讨论】:
-
在挑选樱桃后是否在 HEAD 上添加了“foo”这个问题并不清楚。如果没有,请尝试使用 -x 标志运行 cherry-pick - 也许您添加的提交与您预期的不同。
-
@VasiliyZukanov
foo目录在发出cherry-pick 时不存在于工作树中(您的意思是这样吗?)。-x仅与新提交随附的注释有关。我认为这是一个奇怪的 git 错误(请参阅下面的答案)。 -
我的意思是问
foo是否最终被添加到您执行cherry-pick 的分支中。无论如何,如果升级 Git 解决了您的问题 - 路要走。 -
@VasiliyZukanov 你是对的。 foo 不在工作树中签出的本地分支中。其目的是采摘樱桃。
标签: git cherry-pick git-cherry-pick