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.43.1 → 2.47.1 no changes
- 2.43.0 11/20/23
- 2.22.1 → 2.42.3 no changes
- 2.22.0 06/07/19
- 2.18.1 → 2.21.4 no changes
- 2.18.0 06/21/18
- 2.3.10 → 2.17.6 no changes
- 2.2.3 09/04/15
- 2.1.4 no changes
- 2.0.5 12/17/14
描述
该远程助手使用指定的 <命令> 连接远程 Git 服务器。
写入指定 <命令> 的标准输入流的数据被假定为发送到 git:// 服务器、git-upload-pack、git-receive-pack 或 git-upload-archive(视情况而定),而从 <命令> 的标准输出流读取的数据被假定为从同一服务接收。
命令和参数之间用空格隔开。
以下序列具有特殊含义:
- '% '
-
命令或参数中的字面空格。
- %%
-
字面百分号。
- %s
-
替换为 Git 希望调用的服务名称(receive-pack、upload-pack 或 upload-archive)。
- %S
-
替换为 Git 希望调用的服务的长名称(git-receive-pack、git-upload-pack 或 git-upload-archive)。
- %G(必须是参数中的第一个字符)
-
这个参数不会传给 <命令>。相反,它会导致辅助程序向远端发送 git:// 服务请求,其中服务字段设置为合适的值,版本库字段则设置为参数的其余部分。默认情况下不发送此类请求。
如果远端是通过隧道访问的 git:// 服务器,这个功能就很有用。
- %V (必须是参数中的第一个字符)
-
该参数不会传递给 <命令>。相反,它会在 git:// 服务请求中设置 vhost 字段(与参数的其余部分相同)。 默认情况是不在此类请求中发送 vhost(如果发送)。
实例
当您使用 "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 作为密钥对,user 作为远程用户。这样就无需编辑 .ssh/config。
- "ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"
-
代表通过抽象命名空间地址 /git-server 的 git 协议访问的仓库,路径为 /somerepo。
- "ext::git-server-alias foo %G/repo"
-
代表使用辅助程序 "git-server-alias foo" 访问的仓库,路径为 /repo。 仓库路径和请求类型不在命令行中传递,而是作为协议流的一部分,与 git:// 协议一样。
- "ext::git-server-alias foo %G/repo %Vfoo"
-
代表使用辅助程序 "git-server-alias foo" 访问的仓库,路径为 /repo。 协议流中传递的远程服务器主机名将是 "foo"(这允许多个虚拟 Git 服务器共享一个链接级地址)。
- "ext::git-server-alias foo %G/repo% with% spaces %Vfoo"
-
代表使用辅助程序 "git-server-alias foo" 访问的仓库,路径为 "/repo with spaces"。 协议流中传递的远程服务器主机名将是 "foo"(这允许多个虚拟 Git 服务器共享一个链接级地址)。
- "ext::git-ssl foo.example /bar"
-
代表使用辅助程序 "git-ssl foo.example /bar" 访问的仓库。 请求类型可由辅助程序使用环境变量确定(见上文)。
GIT
属于 git[1] 文档