Skip to content

git-send-pack

通过 Git 协议将对象推送到另一个仓库。

概要

bash
'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-receive-pack,并从当前仓库更新它,发送命名的引用。

选项

  • --receive-pack=<git-receive-pack>:远程端 git-receive-pack 程序的路径。
  • --exec=<git-receive-pack>:与 --receive-pack=<git-receive-pack> 相同。
  • --all:不是显式指定要更新的引用,而是更新本地存在的所有头。
  • --stdin:从 stdin 获取引用列表,每行一个。
  • --dry-run:执行除实际发送更新之外的所有操作。
  • --force:通常,命令拒绝更新不是用于覆盖它的本地引用的祖先的远程引用。此标志禁用该检查。
  • --verbose:详细运行。
  • --thin:发送"精简"包。
  • --atomic:使用原子事务更新引用。
  • --signed--no-signed--signed=(true|false|if-asked):GPG 签名推送请求。
  • --push-option=<string>:将指定的字符串作为推送选项传递。
  • <host>:托管仓库的远程主机。
  • <directory>:要更新的仓库。
  • <ref>...:要更新的远程引用。

指定引用

有三种方式指定要更新的远程端引用:

使用 --all 标志,本地存在的所有引用都传输到远程端。

不使用 --all 且不使用任何 <ref>,更新本地端和远程端都存在的头。

当显式指定一个或多个 <ref> 时,它可以是单个模式,也可以是由冒号 ":" 分隔的模式对。单个模式 <name> 只是 <name>:<name> 的简写。

没有 --force,仅当 <dst> 不存在或 <dst><src> 的适当子集时,<src> 引用才存储在远程端。使用 --force,对所有引用禁用快进检查。

可以选择在 <ref> 参数前加加号 '+' 以仅对该引用禁用快进检查。

Git

git 套件的一部分

基于 CC BY-NC-SA 3.0 许可发布