У меня есть сценарий, который выбирает фиксацию с помощью shelljs.
Вот мой LOC, который собирает вишню с помощью shelljs.
shell.exec('git cherry-pick commitid -X theirs');
Note: commitid = sha of commit I want to cherry-pick.
shelljs выдает следующую ошибку:
fatal: bad object: commitid
например
fatal: bad object: 7854484884 (commitid)
Да, репо чистое, и фиксация существует.
Вам поможет что-нибудь из этого? stackoverflow.com/questions/11834108/fatal-bad-object-xxx





Я обнаружил проблему.
Структура моего проекта выглядит так:
project1 (git repo)
cherrypick.js
project2 (another git repo)
Я хотел выбрать коммит в project2 и объединить его в другой ветке.
Но код был написан в project1. Следовательно, мне пришлось добавить эту строку, и она работает.
shell.exec('cd project2');
shell.exec('git cherry-pick commitid -X theirs');
Исходя из предположения, что ваш статус репозитория git в порядке, уверены ли вы, что идентификатор фиксации существует где-то в репо? Эта ошибка обычно возникает, когда самого коммита нет в истории git.