チェリーピックを実行できません。私のローカルマシンでは、現在「マスター」ブランチにいます。「ゼブラ」という名前の別のブランチからのコミットをチェリーピックしたい。「ゼブラ」ブランチはリモートブランチです。
だからgitステータス:
# On branch master
nothing to commit (working directory clean)
OK、今私は欲しいコミットをチェリーピックしようとします:
git cherry-pick xyz
fatal: bad object xyz
ここで、「xyz」は、ブランチ「zebra」で発生した、私が関心を持っているコミットのシグネチャです。
最初の明白な質問は、なぜ私が参照しているコミットをgitが見つけられないのですか?正直なところ、そもそもこれがどのように機能しているかはよくわかりません。他のすべてのブランチのために、gitはコミットのデータベースのようなものを自分の作業ディレクトリにローカルに格納しますか?cherry-pickコマンドを実行すると、ローカルデータベースを検索して、私が話しているコミットを見つけますか?
「ゼブラ」はリモートブランチなので、ローカルにデータがないと思っていました。だから私はブランチを切り替えました:
git checkout zebra
Switched to branch 'zebra'
これで、ローカルマシン上で、ディレクトリ内のファイルがシマウマの状態を正しく反映していることがわかります。私はマスターに戻り、もう一度チェリーピックを試みます(コミットデータが現在利用可能であることを期待しています)が、同じ問題が発生します。
私はここで何が起こっているのかについての根本的な誤解を持っています、どんな助けも素晴らしいでしょう。