【问题标题】:weird git cherry-pick behaviour奇怪的 git cherry-pick 行为
【发布时间】: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


【解决方案1】:

升级 git。

不好: git 版本 1.7.2.5(如在 Debian Squeeze 中) - 猜测 Wheezy 升级会修复它(有 v1.7.10)

好: git 版本 1.7.9.5(如在 Ubuntu Precise 中)

【讨论】:

    猜你喜欢
    • 2013-11-18
    • 2012-06-24
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2012-09-06
    • 2018-07-27
    相关资源
    最近更新 更多