Ответ 1
Нет. Согласно руководству, git fetch
хочет refspec, простейшей формой которого является ref, а пустой SHA-1 не является ссылкой. I.e., фиксация должна иметь имя (ветвь, тег) на пульте дистанционного управления, чтобы вы могли fetch
его.
Git позволяет извлекать данные из любого удаленного и справочного, например
git fetch <remote-url> <reference>
Чтобы эти данные были доступны без необходимости добавления пультов или создания ветвей.
Это, однако, работает только для ссылок, таких как имена ветвей или теги, но не для конкретных хэшей и, таким образом, коммитов, на которые не ссылаются нигде.
Есть ли способ получить конкретную фиксацию с удаленного?
Нет. Согласно руководству, git fetch
хочет refspec, простейшей формой которого является ref, а пустой SHA-1 не является ссылкой. I.e., фиксация должна иметь имя (ветвь, тег) на пульте дистанционного управления, чтобы вы могли fetch
его.
См. "Потяните конкретную фиксацию из удаленного репозитория git:
С git 2.5 (июль 2015 г.) вы сможете:
git fetch --depth=1 <a/remote/repo.git> $SHA1
git cat-file commit $SHA1
Если SHA1 "доступен" из одной из подсказок ответвления удаленного репо, вы можете его получить.
Caveat: вам нужен сервер удаленной репо git 2.5, который будет обрабатывать конфигурацию uploadpack.allowReachableSHA1InWant
(и вам нужно, чтобы этот параметр был установлен на true
, чтобы разрешить одна фиксация фиксации).