©
本文档使用
php.cn手册 发布
git-send-pack - 将对象通过 Git 协议推送到另一个存储库
git send-pack [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [--[no-]signed|--sign=(true|false|if-asked)] [<host>:]<directory> [<ref>…]
通常你会想要使用git push
这个命令的高级包装,而不是这个。见git-push [1]。
调用git-receive-pack
可能是远程的存储库,并从当前的存储库更新它,发送名为 refs。
--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)。每个 ref 必须位于一个单独的数据包中,并且该列表必须以 flush 数据包结尾。
--dry-run
除了实际发送更新之外,请做其他事
--force
通常,该命令拒绝更新远程 ref,该远程 ref 不是用于覆盖它的本地 ref 的祖先。此标志禁用检查。这意味着远程仓库可能会失去提交; 小心使用它。
--verbose
详细地运行。
--thin
发送一个“精简”包,该包根据包中未包含的对象以分辨形式记录对象,以减少网络流量。
--atomic
使用原子事务来更新参考。如果任何一个 ref 没有更新,那么整个 push 将会失败而不改变任何 refs。
--no-signed --sign=(true|false|if-asked)
GPG-信号 推送请求以更新接收端的 refs,以便通过钩子检查和/或记录。如果false
或者--no-signed
,不会尝试签名。如果true
或者--signed
,如果服务器不支持签名推送,推送将失败。如果设置为if-asked
,则当且仅当服务器支持签名推送时签名。如果实际的调用gpg --sign
失败,推送也会失败。有关接收端的详细信息,请参阅 git-receive-pack [1]。
--push-option=<string>
将指定的字符串作为推送选项传递给服务器端的挂钩使用。如果服务器不支持推送选项,则出错。有关详细信息,请参阅 git-push [1]和 githooks [5]。
<host>
一个远程主机来存放版本库。当这部分被指定时,通过ssh调用git-receive-pack
。
<directory>
要更新的存储库。
<ref>…
远程参考更新。
有三种方法可以指定在远程端更新哪些参考。
使用--all
标志,本地存在的所有参考将转移到远程方。如果您使用此标志,则不能指定任何<ref>
内容。
如果没有--all
和没有<ref>
,本地和远端存在的头都会更新。
当明确指定一个或多个<ref>
(无论是在命令行还是通过--stdin
)时,它可以是单个模式,也可以是由冒号“:”分隔的一对这样的模式(这意味着 ref 名称不能包含冒号它)。一个模式<name>
只是一个<name>:<name>
简写。
每个模式对由源端(冒号前)和目标端(冒号后)组成。要推送的引用是通过找到匹配源端的匹配来确定的,并且推送的位置由目标端确定。用于匹配 ref 的规则与用于git rev-parse
解析符号 ref 名称的规则相同。参见 git-rev-parse [1]。
如果<src>不完全匹配一个本地引用,那是错误的。
如果<dst>匹配多个远程引用,那是错误的。
如果<dst>与任何远程参考不匹配
- it has to start with "refs/"; <dst> is used as the destination literally in this case.
- <src> == <dst> and the ref that matched the <src> must not exist in the set of remote refs; the ref matched <src> locally is used as the name of the destination.
如果没有--force
,<src> ref仅在<dst>不存在的情况下存储在远程,或者<dst>是<src>的真子集(即祖先)。此检查称为“快进检查”,以避免意外覆盖远程参考并丢失其他人的提交。
与此同时--force
,所有裁判都禁用快进检查。
可选地,一个<ref>参数可以带有加+
号前缀以禁用仅在该 ref 上的快进检查。