J'ai du mal à effectuer une sélection. Sur ma machine locale, je suis actuellement sur ma branche "master". Je veux sélectionner un commit d'une autre branche, nommée "zebra". La branche "zebra" est une branche distante.
Donc, git status:
# On branch master
nothing to commit (working directory clean)
Ok, maintenant j'essaye de choisir le commit que je veux:
git cherry-pick xyz
fatal: bad object xyz
où "xyz" est la signature du commit qui m'intéresse, qui s'est produit sur la branche "zebra".
Donc, la première question évidente est, pourquoi ne peut-il pas trouver le commit auquel je fais référence? Je ne comprends pas vraiment comment cela fonctionne en premier lieu pour être honnête. Est-ce que git stocke quelque chose comme une base de données de commits localement dans mon répertoire de travail, pour toutes les autres branches? Lors de l'exécution de la commande cherry-pick, va-t-il rechercher cette base de données locale pour trouver le commit dont je parle?
Puisque "zebra" est une branche distante, je pensais que je n'ai pas ses données localement. J'ai donc changé de branche:
git checkout zebra
Switched to branch 'zebra'
Alors maintenant, sur ma machine locale, je peux voir que les fichiers du répertoire reflètent correctement l'état de zebra. Je reviens en maître, j'essaye à nouveau de faire un tri (en espérant que les données de validation sont disponibles maintenant), mais j'obtiens le même problème.
J'ai un malentendu fondamental sur ce qui se passe ici, toute aide serait formidable.