У меня проблемы с выбором вишни. На моем локальном компьютере я сейчас нахожусь в своей «главной» ветке. Я хочу выбрать вариант коммита из другой ветки с именем «zebra». Ветка «зебра» - удаленная ветка.
Итак, статус git:
# On branch master
nothing to commit (working directory clean)
Хорошо, теперь я пытаюсь выделить коммит, который хочу:
git cherry-pick xyz
fatal: bad object xyz
где «xyz» - это подпись интересующей меня фиксации, которая произошла на ветке «зебра».
Итак, первый очевидный вопрос: почему git не может найти коммит, на который я ссылаюсь? Я вообще не понимаю, как это работает, если честно. Хранит ли git что-то вроде базы данных коммитов локально в моем рабочем каталоге для всех других веток? При выполнении команды cherry-pick ищет ли она в локальной базе данных коммит, о котором я говорю?
Поскольку «зебра» - это удаленная ветка, я подумал, что у меня нет ее данных локально. Итак, я поменял ветки:
git checkout zebra
Switched to branch 'zebra'
Итак, теперь здесь, на моем локальном компьютере, я вижу, что файлы в каталоге правильно отражают состояние zebra. Я снова переключаюсь на мастер, снова пытаюсь выбрать вишню (надеясь, что данные фиксации теперь доступны), но у меня та же проблема.
У меня фундаментальное недопонимание того, что здесь происходит, любая помощь будет отличной.