Почему 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 документация для деталей. Если вы используете свои собственные серверы, вы можете настроить их таким образом.

Другие вопросы по тегам