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