Spec-Zone.ru › Git

git-upload-pack

Имя

git-upload-pack - Отправка упакованных объектов в git-fetch-pack

Синтаксис

git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]
                  [--advertise-refs] <directory>

Описание

Вызывается git fetch-pack, определяет, каких объектов не хватает на стороне клиента, и отправляет их после упаковки.

Этот команд обычно не вызывается напрямую пользователем. Интерфейс для протокола находится на стороне git fetch-pack, а пара программ предназначена для получения обновлений из удаленного репозитория. Для операций отправки см. git send-pack.

Параметры

--[no-]strict

Не пытаться найти .git/ в <каталоге>, если <каталог> не является каталогом Git.

--timeout=<n>

Прервать передачу после <n> секунд бездействия.

--stateless-rpc

Выполнить только один цикл чтения-записи со стандартным вводом и выводом. Это соответствует модели обработки запросов HTTP POST, где программа может прочитать запрос, записать ответ и должна завершиться.

--http-backend-info-refs

Используется git-http-backend[1] для обработки запросов $GIT_URL/info/refs?service=git-upload-pack. См. раздел «Умные клиенты» в gitprotocol-http[5] и раздел «Транспорт HTTP» в документации gitprotocol-v2[5]. Также поддерживается git-receive-pack[1].

<каталог>

Репозиторий для синхронизации.

Окружение

GIT_PROTOCOL

Внутренняя переменная, используемая для установления связи по протоколу. Администраторы сервера могут потребоваться настроить некоторые транспортные средства, чтобы разрешить передачу этой переменной. См. обсуждение в git[1].

GIT_NO_LAZY_FETCH

При клонировании или получении данных из частичного репозитория (т. е. самого по себе, клонированного с помощью --filter), серверу upload-pack может потребоваться получить дополнительные объекты из своего источника, чтобы завершить запрос. По умолчанию upload-pack откажется от выполнения такого ленивого получения, поскольку git fetch может запускать произвольные команды, указанные в конфигурации и хуках исходного репозитория (и upload-pack старается безопасно запускать их даже в недоверенных .git каталогах).

Это реализуется за счет того, что upload-pack внутренне устанавливает переменную GIT_NO_LAZY_FETCH в 1. Если вы хотите переопределить это (потому что вы получаете данные из частичного клона, и вы уверены, что доверяете ему), вы можете явно установить GIT_NO_LAZY_FETCH в 0.

Безопасность

Большинство команд Git не должны выполняться в недоверенном .git каталоге (см. раздел SECURITY в git[1]). upload-pack старается избегать любых опасных параметров конфигурации или хуков из репозитория, который он обслуживает, делая безопасным клонирование недоверенного каталога и выполнение команд на созданном клоне.

Для дополнительного уровня безопасности вы можете запустить upload-pack как альтернативного пользователя. Подробности будут зависеть от платформы, но на многих системах вы можете запустить:

git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...

См. также

gitnamespaces[7]

upload-pack

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-upload-pack

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API