Почему git ls-remote не перечисляет все удаленные ссылки?
У меня удаленный репо (origin
) чья refs
Каталог содержит, помимо обычного heads
, tags
, а также remotes
подкаталоги, также keep-around
а также merge-requests
, Это специальные наборы ссылок, которые управляются Gitlab для внутренней уборки.
Когда я использую git ls-remote
чтобы опросить этот репозиторий, команда перечисляет merge-requests
ссылки, но не keep-around
Запросы:
$ git ls-remote
5ef8f113ba35360de0dfc015601bb832bacb5505 HEAD
... lots of refs/heads/...
... lots of refs/merge-requests/...
... lots of refs/tags...
Точно так же я могу получить merge-requests
ссылки, например с
$ git fetch origin refs/merge-requests/999/head
From git.company.com:Company/company
* branch refs/merge-requests/999/head -> FETCH_HEAD
но когда я прошу keep-around
ref, удаленное хранилище утверждает, что его не существует, хотя я знаю, что оно существует:
$ git fetch origin refs/keep-around/291ad6a6bebf067377700d430ac130d758ed52e9
fatal: couldn't find remote ref refs/keep-around/291ad6a6bebf067377700d430ac130d758ed52e9
fatal: The remote end hung up unexpectedly
Я ничего не вижу в удаленном репо config
кажется, это связано с этим. Что вызывает другое поведение?
Приложение: Мередит Ховард предполагает, что это может быть особенностью Gitlab; есть специальный конфиг Gitlab, который говорит, что он должен скрывать ссылки в refs/keep-around
, Посмотрите этот запрос поддержки от кого-то с подобным вопросом.
Приложение: Было высказано предположение, что это дубликат Git, извлекающий конкретный коммит по хешу. Я не пытаюсь получить конкретный коммит по хешу. Я хочу знать, почему в удаленном репо отсутствуют определенные ссылки из своего списка.
1 ответ
Каждый сайт веб-хостинга Git может через любые механизмы конфигурации, которые использует сайт (скорее всего, --system
файл конфигурации), скрыть все ссылки, которые ему нравятся. У самого Git есть универсальный механизм для этого: transfer.hideRefs
, Увидеть git config
документация для деталей. Если вы используете свои собственные серверы, вы можете настроить их таким образом.