Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.53.0 → 2.54.0 no changes
-
2.52.0
2025-11-17
- 2.43.1 → 2.51.2 no changes
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 no changes
-
2.39.0
2022-12-12
- 2.34.1 → 2.38.5 no changes
-
2.34.0
2021-11-15
- 2.18.1 → 2.33.8 no changes
-
2.18.0
2018-06-21
- 2.16.6 → 2.17.6 no changes
-
2.15.4
2019-12-06
- 2.14.6 no changes
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 no changes
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 no changes
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.2.3 → 2.3.10 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОБЗОР
git send-pack [--mirror] [--dry-run] [--force]
[--receive-pack=<git-receive-pack>]
[--verbose] [--thin] [--atomic]
[--[no-]signed | --signed=(true|false|if-asked)]
[<хост>:]<каталог> (--all | <ссылка>…)
ОПИСАНИЕ
Обычно вместо этого вы захотите использовать git push, который является более высокоуровневой обёрткой этой команды. См. git-push[1].
Вызывает git-receive-pack в возможно внешнем репозитории и обновляет его из текущего репозитория, отправляя именованные ссылки.
ПАРАМЕТРЫ
- --receive-pack=<git-receive-pack>
-
Путь к программе git-receive-pack на внешней стороне. Иногда полезно при отправке во внешний репозиторий через ssh, если у вас нет этой программы в каталоге, указанном в стандартном $PATH.
- --exec=<git-receive-pack>
-
То же, что и --receive-pack=<git-receive-pack>.
- --all
-
Вместо явного указания, какие ссылки обновлять, обновить все головы, которые существуют локально.
- --stdin
-
Брать список ссылок из stdin, по одной на строку. Если в командной строке указаны ссылки в дополнение к этому параметру, то ссылки из stdin обрабатываются после указанных в командной строке.
Если
--stateless-rpcуказан вместе с этим параметром, то список ссылок должен быть в формате пакетов (pkt-line). Каждая ссылка должна быть в отдельном пакете, и список должен заканчиваться пакетом сброса. - --dry-run
-
Сделать всё, кроме фактической отправки обновлений.
- --force
-
Обычно команда отказывается обновлять внешнюю ссылку, которая не является предком локальной ссылки, используемой для её перезаписи. Этот флаг отключает проверку. Это означает, что внешний репозиторий может потерять коммиты; используйте его с осторожностью.
- --verbose
-
Работать подробно (verbose).
- --thin
-
Отправляет «тонкий» пакет, который записывает объекты в дельтифицированной форме на основе объектов, не включённых в пакет, для уменьшения сетевого трафика.
- --atomic
-
Использовать атомарную транзакцию для обновления ссылок. Если какая-либо из ссылок не обновляется, вся отправка завершится ошибкой без изменения каких-либо ссылок.
- --signed
- --no-signed
- --signed=(true|false|if-asked)
-
Подписывает GPG запрос на отправку для обновления ссылок на принимающей стороне, чтобы позволить перехватчикам проверить его и/или зарегистрировать. Если указано
falseили--no-signed, подписание не будет выполняться. Если указаноtrueили--signed, отправка завершится ошибкой, если сервер не поддерживает подписанные отправки. Если установлено вif-asked, подписывать тогда и только тогда, когда сервер поддерживает подписанные отправки. Отправка также завершится ошибкой, если фактический вызовgpg--signзавершится ошибкой. Подробности о принимающей стороне см. в git-receive-pack[1]. - --push-option=<string>
-
Передаёт указанную строку в качестве параметра отправки для использования перехватчиками на стороне сервера. Если сервер не поддерживает параметры отправки, завершается ошибкой. Подробности см. в git-push[1] и githooks[5].
- <host>
-
Внешний хост, на котором находится репозиторий. Когда эта часть указана, git-receive-pack вызывается через ssh.
- <directory>
-
Репозиторий для обновления.
- <ref>…
-
Внешние ссылки для обновления.
ОПРЕДЕЛЕНИЕ ССЫЛОК
Существует три способа указать, какие ссылки обновлять на внешней стороне.
С флагом --all все ссылки, существующие локально, передаются на внешнюю сторону. Вы не можете указывать никакие <ссылка>, если используете этот флаг.
Без --all и без каких-либо <ссылка> обновляются головы, которые существуют как на локальной, так и на внешней стороне.
Когда одна или несколько <ссылка> указаны явно (будь то в командной строке или через --stdin), это может быть либо один шаблон, либо пара таких шаблонов, разделённых двоеточием ":" (это означает, что имя ссылки не может содержать двоеточие). Одиночный шаблон <имя> — это просто сокращение для <имя>:<имя>.
Каждая пара шаблонов состоит из исходной стороны (до двоеточия) и целевой стороны (после двоеточия). Отправляемая ссылка определяется путём поиска совпадения, соответствующего исходной стороне, а то, куда она отправляется, определяется с использованием целевой стороны. Правила, используемые для сопоставления ссылки, совпадают с правилами, используемыми git rev-parse для разрешения имени символьной ссылки. См. git-rev-parse[1].
-
Ошибкой является, если <src> не соответствует ровно одной из локальных ссылок.
-
Ошибкой является, если <dst> соответствует более чем одной внешней ссылке.
-
Если <dst> не соответствует ни одной внешней ссылке, либо
-
он должен начинаться с «refs/»; <dst> используется буквально как назначение в этом случае.
-
<src> == <dst>, и ссылка, соответствующая <src>, не должна существовать в наборе внешних ссылок; ссылка, соответствующая <src> локально, используется в качестве имени назначения.
-
Без --force ссылка <src> сохраняется во внешнем репозитории, только если <dst> не существует или <dst> является собственным подмножеством (т.е. предком) <src>. Эта проверка, известная как "проверка перемотки вперёд", выполняется, чтобы случайно не перезаписать внешнюю ссылку и не потерять оттуда чужие коммиты.
С --force проверка перемотки вперёд отключена для всех ссылок.
Опционально, параметру <ссылка> может предшествовать знак плюса +, чтобы отключить проверку перемотки вперёд только для этой ссылки.
GIT
Является частью пакета git[1]