Saya mengalami kesulitan melakukan pick-ceri. Di mesin lokal saya, saya saat ini di cabang "master" saya. Saya ingin cherry-pick di komit dari cabang lain, bernama "zebra". Cabang "zebra" adalah cabang terpencil.
Jadi status git:
# On branch master
nothing to commit (working directory clean)
Oke, sekarang saya coba untuk memilih-komit yang saya inginkan:
git cherry-pick xyz
fatal: bad object xyz
di mana "xyz" adalah tanda tangan dari komit yang saya tertarik, yang terjadi pada cabang "zebra".
Jadi pertanyaan pertama yang jelas adalah, mengapa git tidak dapat menemukan komit yang saya referensikan? Saya tidak begitu mengerti bagaimana ini bekerja pada awalnya untuk jujur. Apakah git menyimpan sesuatu seperti basis data komit secara lokal di direktori kerja saya, untuk semua cabang lainnya? Ketika menjalankan perintah cherry-pick, apakah itu pergi dan mencari di database lokal untuk menemukan komit yang saya bicarakan?
Karena "zebra" adalah cabang jarak jauh, saya berpikir saya tidak memiliki datanya secara lokal. Jadi saya beralih cabang:
git checkout zebra
Switched to branch 'zebra'
Jadi sekarang di sini di mesin lokal saya, saya dapat melihat bahwa file-file dalam direktori mencerminkan keadaan zebra dengan benar. Saya beralih kembali ke master, mencoba memilih lagi (berharap data commit tersedia sekarang), tetapi saya mendapatkan masalah yang sama.
Saya memiliki kesalahpahaman mendasar tentang apa yang terjadi di sini, bantuan apa pun akan bagus.