Подтвердить что ты не робот

Git fetch конкретная фиксация хешем

Git позволяет извлекать данные из любого удаленного и справочного, например

git fetch <remote-url> <reference>

Чтобы эти данные были доступны без необходимости добавления пультов или создания ветвей.

Это, однако, работает только для ссылок, таких как имена ветвей или теги, но не для конкретных хэшей и, таким образом, коммитов, на которые не ссылаются нигде.

Есть ли способ получить конкретную фиксацию с удаленного?

4b9b3361

Ответ 1

Нет. Согласно руководству, git fetch хочет refspec, простейшей формой которого является ref, а пустой SHA-1 не является ссылкой. I.e., фиксация должна иметь имя (ветвь, тег) на пульте дистанционного управления, чтобы вы могли fetch его.

Ответ 2

См. "Потяните конкретную фиксацию из удаленного репозитория 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, чтобы разрешить одна фиксация фиксации).