Русский ▾ Topics ▾ Latest version ▾ git-upload-pack last updated in 2.52.0

НАЗВАНИЕ

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

ОБЗОР

git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]
		  [--advertise-refs] <каталог>

ОПИСАНИЕ

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

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

ПАРАМЕТРЫ

--strict
--no-strict

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

--timeout=<n>

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

--stateless-rpc

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

--http-backend-info-refs

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

<directory>

Репозиторий, из которого выполняется синхронизация.

ОКРУЖЕНИЕ

GIT_PROTOCOL

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

GIT_NO_LAZY_FETCH

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

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

БЕЗОПАСНОСТЬ

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

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

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

СМОТРИТЕ ТАКЖЕ

GIT

Является частью пакета git[1]