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