Sto riscontrando problemi nell'eseguire una scelta della ciliegia. Sul mio computer locale, sono attualmente nel mio ramo "master". Voglio scegliere una commessa da un altro ramo, chiamato "zebra". Il ramo "zebra" è un ramo remoto.
Quindi stato git:
# On branch master
nothing to commit (working directory clean)
Ok, ora provo a scegliere il commit che voglio:
git cherry-pick xyz
fatal: bad object xyz
dove "xyz" è la firma del commit che mi interessa, che si è verificato sul ramo "zebra".
Quindi la prima domanda ovvia è: perché non riesco a trovare il commit a cui mi riferisco? In realtà non capisco come stia funzionando, per essere onesti. Git memorizza qualcosa come un database di commit localmente nella mia directory di lavoro, per tutti gli altri rami? Quando si esegue il comando cherry-pick, va e cerca quel database locale per trovare il commit di cui sto parlando?
Dato che "zebra" è un ramo remoto, stavo pensando di non avere i suoi dati localmente. Quindi ho cambiato filiale:
git checkout zebra
Switched to branch 'zebra'
Quindi ora qui sul mio computer locale, posso vedere che i file nella directory riflettono correttamente lo stato di zebra. Torno al master, provo di nuovo a scegliere ciliegia (sperando che i dati di commit siano ora disponibili), ma ottengo lo stesso problema.
Ho un fraintendimento fondamentale di quello che sta succedendo qui, qualsiasi aiuto sarebbe grande.