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