git-send-pack
Имя
git-send-pack - Отправка объектов по протоколу Git в другой репозиторий
Синтаксис
git send-pack [--mirror] [--dry-run] [--force]
[--receive-pack=<git-receive-pack>]
[--verbose] [--thin] [--atomic]
[--[no-]signed | --signed=(true|false|if-asked)]
[<host>:]<directory> (--all | <ref>…) Описание
Обычно вы захотите использовать 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
-
Получить список ссылок из стандартного ввода, по одной на строку. Если ссылки указаны в командной строке помимо этого параметра, то ссылки из стандартного ввода обрабатываются после ссылок в командной строке.
Если
--stateless-rpcуказано вместе с этим параметром, то список ссылок должен быть в формате пакетов (pkt-line). Каждая ссылка должна находиться в отдельном пакете, а список должен заканчиваться пакетом завершения. - --dry-run
-
Выполнить все действия, кроме фактической отправки обновлений.
- --force
-
Обычно команда отказывается обновлять удалённую ссылку, которая не является предком локальной ссылки, используемой для её перезаписи. Этот флаг отключает проверку. Это означает, что удалённый репозиторий может потерять коммиты; используйте его с осторожностью.
- --verbose
-
Запустить в подробном режиме.
- --thin
-
Отправить "тонкий" пакет, который записывает объекты в виде изменений (deltified form) на основе объектов, не включённых в пакет, чтобы уменьшить трафик сети.
- --atomic
-
Использовать атомную транзакцию для обновления ссылок. Если какое-либо из обновлений ссылок завершится неудачно, весь push завершится неудачно, не изменяя ни одной ссылки.
- --[no-]signed
- --signed=(true|false|if-asked)
-
Подписать запрос на push с помощью GPG, чтобы позволить проверку хуками и/или ведение журнала на стороне получателя. Если
falseили--no-signed, попытка подписания не будет предпринята. Еслиtrueили--signed, push завершится неудачно, если сервер не поддерживает подписанные push. Если установленоif-asked, подписывать только в том случае, если сервер поддерживает подписанные push. Push также завершится неудачно, если фактический вызовgpg --signзавершится неудачно. См. git-receive-pack[1] для получения подробностей на стороне получателя. - --push-option=<string>
-
Передать указанную строку в качестве параметра push для использования хуками на стороне сервера. Если сервер не поддерживает параметры push, произойдёт ошибка. См. git-push[1] и githooks[5] для получения подробностей.
- <host>
-
Удалённый хост, на котором расположен репозиторий. Когда эта часть указана,
git-receive-packвызывается через ssh. - <directory>
-
Репозиторий для обновления.
- <ref>…
-
Удалённые ссылки для обновления.
Указание ссылок
Существует три способа указать, какие ссылки обновить на удалённом конце.
С флагом --all, все ссылки, которые существуют локально, передаются на удалённую сторону. Вы не можете указать какие-либо <ref> если используете этот флаг.
Без --all и без каких-либо <ref>, обновляются ветки, которые существуют как на локальной, так и на удалённой стороне.
Когда один или несколько <ref> указаны явно (в командной строке или через --stdin), это может быть один шаблон или пара таких шаблонов, разделённых двоеточием ":" (это означает, что имя ссылки не может содержать двоеточие). Один шаблон <name> — это просто сокращение для <name>:<name>.
Каждая пара шаблонов состоит из исходной стороны (перед двоеточием) и целевой стороны (после двоеточия). Ссылка для отправки определяется по совпадению с исходной стороной, а место отправки определяется с использованием целевой стороны. Правила сопоставления ссылки — те же правила, что и у git rev-parse для разрешения имени символической ссылки. См. git-rev-parse[1].
-
Ошибка, если <src> не точно соответствует одной из локальных ссылок.
-
Ошибка, если <dst> соответствует более чем одной удалённой ссылке.
-
Если <dst> не соответствует никакой удалённой ссылке, то
-
она должна начинаться с "refs/"; <dst> используется как целевое значение буквально в этом случае.
-
<src> == <dst> и ссылка, соответствующая <src>, не должна существовать в наборе удалённых ссылок; ссылка, соответствующая <src> локально, используется как имя назначения.
-
Без --force, ссылка <src> сохраняется на удалённом конце только если <dst> не существует или <dst> является правильным подмножеством (т. е. предком) <src>. Эта проверка, известная как "проверка быстрого продолжения", выполняется, чтобы избежать случайной перезаписи удалённой ссылки и потери коммитов других людей оттуда.
С --force, проверка быстрого продолжения отключается для всех ссылок.
Необязательно, параметр <ref> можно префиксровать знаком плюс + для отключения проверки быстрого продолжения только для этой ссылки.
send-pack
© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-send-pack