Форма git fetch
, которую вы пытаетесь использовать:
git fetch <repository> <refspec>
Тем не менее, ваша SHA1sum является (маловероятно!) Действительной ссылкой. Refspec определяет отображение между ссылками (обычно именами ветвей) между исходным и целевым хранилищем. Суммы SHA1 (имена объектов) отличаются от ссылок, и ошибка говорит вам, что когда вы делаете git fetch path/to/local-repo2 f414f31
, он расширяет refspec до f414f31:f414f31
, а затем не может найти ref f414f31
в удаленном репозитории. Это потому, что это не ссылка.
Итак, предполагая, что ваш коммит находится в локальной ветке в удаленном репозитории, я бы сделал следующее:
git remote add other-local path/to/local-repo2
git fetch other-local
git cherry-pick f414f31
Форма git fetch <remote-name>
извлекает все локальные ветки в удаленном репозитории в ветки удаленного отслеживания под refs/remotes/<remote-name>
и проверяет, что все объекты, необходимые для этих ветвей (включая все коммиты в истории), присутствуют в ваш локальный репозиторий.