©
This document uses PHP Chinese website manual Release
名称
git-remote-ext - 将智能传输桥接到外部命令。
git remote add <nick> "ext::<command>[ <arguments>…]"
此远程助手使用指定<command>
的连接到远程Git服务器。
写入指定stdin的数据<command>
被假定为发送到git://server,git-upload-pack,git-receive-pack或git-upload-archive(取决于具体情况),以及从stdout <命令>被认为是从同一个服务接收的。
命令和参数由未转义的空格分隔。
以下序列具有特殊含义:
'% '
命令或论点中的文字空间。
%%
文字百分号。
%s
替换为Git希望调用的服务的名称(接收包,上传包或上传存档)。
%S
替换为Git想要调用的服务的长名称(git-receive-pack,git-upload-pack或git-upload-archive)。
%G(必须是参数中的第一个字符)
这个参数不会传递给<command>
。相反,它会使助手开始发送git://服务请求到远程端,并将服务字段设置为适当的值,并将信息库字段设置为参数的其余部分。默认不发送这样的请求。
如果远程端是通过某个隧道访问的git://服务器,这很有用。
%V(必须是参数中的第一个字符)
这个参数不会传递给<command>
。相反,它将ghost://服务请求中的虚拟主机字段(设置为参数的其余部分)。默认不发送虚拟主机在这样的请求(如果发送)。
GIT_TRANSLOOP_DEBUG
如果设置,则打印关于各种读取/写入的调试信息。
GIT_EXT_SERVICE
设置为服务助手需要调用的长名称(git-upload-pack等)。
GIT_EXT_SERVICE_NOPREFIX
设置为服务助手需要调用的长名称(上传包等)。
当您使用诸如“git fetch <URL>”,“git clone <URL>”,“git push <URL>”或“git remote add <nick> <URL>”之类的命令时,Git透明地使用此远程助手。 ,其中<URL>开头ext::
。例子:
"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S foo/repo"
像host.example:foo/repo,但使用/home/foo/.ssh/somekey作为密钥对,用户使用远程端的用户。这避免了需要编辑.ssh/config。
"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"
使用git协议在抽象名称空间地址/git-server上代表具有path/somerepo的存储库。
"ext::git-server-alias foo %G/repo"
表示使用助手程序“git-server-alias foo”访问path/repo的存储库。存储库的路径和请求的类型不像命令行那样传递,而是作为协议流的一部分,像通常一样使用git://协议。
"ext::git-server-alias foo %G/repo %Vfoo"
表示使用助手程序“git-server-alias foo”访问path/repo的存储库。在协议流中传递的远程服务器的主机名将是“foo”(这允许多个虚拟Git服务器共享链接级地址)。
"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"
表示具有/repo with spaces
使用助手程序“git-server-alias foo”访问的路径的存储库。在协议流中传递的远程服务器的主机名将是“foo”(这允许多个虚拟Git服务器共享链接级地址)。
"ext::git-ssl foo.example /bar"
表示使用助手程序“git-ssl foo.example/bar”访问的存储库。请求的类型可以由帮助程序使用环境变量确定(参见上文)。
gitremote-helpers[1]