最佳答案
我不太会挑人。在我的本地机器上,我目前在我的“master”分支上。我想从另一个分支中挑选一个提交,命名为“斑马”。“斑马”分支是一个远程分支。
git状态:
# On branch master
nothing to commit (working directory clean)
好的,现在我试着挑选我想要的提交:
git cherry-pick xyz
fatal: bad object xyz
其中“xyz”是我感兴趣的提交签名,它发生在分支“斑马”上。
第一个明显的问题是,为什么git找不到我引用的commit ?说实话,我真的不明白这是怎么回事。git是否在我的工作目录中为所有其他分支存储了类似于本地提交数据库的东西?当执行cherry-pick命令时,它会搜索本地数据库来找到我所说的提交吗?
由于“斑马”是一个远程分支,我想我在本地没有它的数据。所以我切换了分支:
git checkout zebra
Switched to branch 'zebra'
现在在我的本地机器上,我可以看到目录中的文件正确地反映了zebra的状态。我切换回master,尝试再次选择(希望提交数据现在可用),但我遇到了同样的问题。
我对这里发生的事情有个基本的误解,任何帮助都是最好的。