设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.43.1 → 2.49.0 无变更
-
2.43.0
2023-11-20
- 2.22.1 → 2.42.4 无变更
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 无变更
-
2.18.0
2018-06-21
- 2.3.10 → 2.17.6 无变更
-
2.2.3
2015-09-04
- 2.1.4 无变更
-
2.0.5
2014-12-17
描述
此远程助手使用指定的 *<command>* 连接到远程 Git 服务器。
写入指定 *<command>* 的 stdin 的数据被假定为发送到 git:// 服务器、git-upload-pack、git-receive-pack 或 git-upload-archive(取决于情况),从 <command> 的 stdout 读取的数据被假定为从同一服务接收。
命令和参数用未转义的空格分隔。
以下序列具有特殊含义
- '% '
-
命令或参数中的字面空格。
- %%
-
字面百分号。
- %s
-
替换为 Git 想要调用的服务的名称(receive-pack、upload-pack 或 upload-archive)。
- %S
-
替换为 Git 想要调用的服务的长名称(git-receive-pack、git-upload-pack 或 git-upload-archive)。
- %G(必须是参数中的第一个字符)
-
此参数不会传递给 *<command>*。 相反,它将导致助手通过将服务字段设置为适当的值,并将存储库字段设置为参数的其余部分,来开始向远程端发送 git:// 服务请求。 默认情况下不发送此类请求。
如果远程端是通过某些隧道访问的 git:// 服务器,这将非常有用。
- %V(必须是参数中的第一个字符)
-
此参数不会传递给 *<command>*。 相反,它设置 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 协议在抽象命名空间地址 /git-server 访问的路径为 /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] 套件的一部分