मुझे चेरी-पिक करने में परेशानी हो रही है। अपनी स्थानीय मशीन पर, मैं वर्तमान में अपनी "मास्टर" शाखा पर हूं। मैं "ज़ेबरा" नाम की एक अन्य शाखा से एक कमिटमेंट में चेरी-पिक करना चाहता हूं। "ज़ेबरा" शाखा एक दूरस्थ शाखा है।
तो स्थिति
# On branch master
nothing to commit (working directory clean)
ठीक है, अब मैं अपनी इच्छा के अनुसार चेरी को लेने की कोशिश करता हूं:
git cherry-pick xyz
fatal: bad object xyz
जहां "xyz" उस कमिटमेंट पर हस्ताक्षर करता है जिसमें मैं दिलचस्पी रखता हूं, जो कि शाखा "ज़ेबरा" पर हुआ।
तो पहला स्पष्ट सवाल यह है कि मैं जिस संदर्भ का उल्लेख कर रहा हूं उसे क्यों नहीं खोज सकते? मैं वास्तव में यह नहीं समझता कि ईमानदार होने के लिए पहली जगह में यह कैसे काम कर रहा है। क्या अन्य सभी शाखाओं के लिए, मेरे वर्किंग डायरेक्टरी में स्थानीय रूप से कमिट्स के डेटाबेस की तरह कुछ स्टोर होता है? जब चेरी-पिक कमांड को निष्पादित करते हैं, तो क्या वह उस स्थानीय डेटाबेस को खोजता है और उस प्रतिबद्ध को ढूंढता है जिसके बारे में मैं बात कर रहा हूं?
चूंकि "ज़ेबरा" एक दूरस्थ शाखा है, मैं सोच रहा था कि मेरे पास इसका डेटा स्थानीय स्तर पर नहीं है। इसलिए मैंने शाखाओं को बदल दिया:
git checkout zebra
Switched to branch 'zebra'
इसलिए अब अपनी स्थानीय मशीन पर, मैं देख सकता हूं कि निर्देशिका में फाइलें ज़ेबरा की स्थिति को सही ढंग से दर्शाती हैं। मैं मास्टर पर वापस जाता हूं, फिर से चेरी लेने की कोशिश करता हूं (उम्मीद है कि अभी कमिट डेटा उपलब्ध है), लेकिन मुझे भी यही समस्या है।
मुझे यहां जो कुछ चल रहा है, उसकी एक गलतफहमी मिली है, कोई भी मदद बहुत अच्छी होगी।