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.45.2 → 2.47.0 no changes
- 2.45.1 04/29/24
- 2.45.0 no changes
- 2.44.2 no changes
- 2.44.1 04/19/24
- 2.44.0 no changes
- 2.43.5 no changes
- 2.43.4 04/19/24
- 2.43.1 → 2.43.3 no changes
- 2.43.0 no changes
- 2.42.3 no changes
- 2.42.2 04/19/24
- 2.42.1 no changes
- 2.42.0 no changes
- 2.41.2 no changes
- 2.41.1 04/19/24
- 2.41.0 no changes
- 2.40.3 no changes
- 2.40.2 04/19/24
- 2.40.1 no changes
- 2.40.0 no changes
- 2.39.5 no changes
- 2.39.4 04/19/24
- 2.38.1 → 2.39.3 no changes
- 2.38.0 10/02/22
- 2.34.1 → 2.37.7 no changes
- 2.34.0 11/15/21
- 2.21.1 → 2.33.8 no changes
- 2.21.0 no changes
- 2.19.3 → 2.20.5 no changes
- 2.19.2 11/21/18
- 2.11.4 → 2.19.1 no changes
- 2.10.5 09/22/17
- 2.1.4 → 2.9.5 no changes
- 2.0.5 12/17/14
描述
由 git fetch-pack 调用,了解对方缺少哪些对象,并在打包后发送。
终端用户通常不会直接调用该命令。 该协议的用户界面在 git fetch-pack 端,程序对用于从远程仓库拉取更新。 关于推送操作,请参阅 git send-pack。
选项
- --[no-]strict
-
如果 <目录> 不是 Git 目录,请不要尝试 <目录>/.git/ 。
- --timeout=<n>
-
<n> 秒不活动后中断传输。
- --stateless-rpc
-
只对标准输入和标准输出执行一次读写循环。 这符合 HTTP POST 请求处理模式,即程序可以读取请求、写入响应,然后必须退出。
- --http-backend-info-refs
-
由 git-http-backend[1] 使用,用于提供
$GIT_URL/info/refs?service=git-upload-pack
请求。参见 gitprotocol-http[5] 中的 “智能客户端” 和 gitprotocol-v2[5] 文档中的 “HTTP 传输”。也可理解为 git-receive-pack[1]。 - <目录>
-
要同步的仓库。
环境变量
-
GIT_PROTOCOL
-
用于与传输协议握手的内部变量。服务器管理员可能需要配置某些传输协议,以允许传递此变量。请参阅 git[1] 中的讨论。
-
GIT_NO_LAZY_FETCH
-
当从部分仓库(即本身使用
--filter
克隆的仓库)克隆或提取时,服务器端的upload-pack
可能需要从其上游获取额外的对象以完成请求。默认情况下,upload-pack
将拒绝执行此类延迟获取,因为git fetch
可能会运行源仓库配置和钩子中指定的任意命令(并且upload-pack
尝试即使在不受信任的.git
目录中也能安全运行)。这是通过让
upload-pack
在内部将GIT_NO_LAZY_FETCH
变量设置为1
来实现的。如果您想覆盖它(因为您正在从部分克隆中提取,并且您确信您信任它),您可以显式地将GIT_NO_LAZY_FETCH
设置为0
。
安全
大多数 Git 命令不应在不受信任的 .git
目录中运行(参见 git[1] 中的 SECURITY
部分)。upload-pack
尝试避免来自其服务的仓库的任何危险配置选项或钩子,这使得克隆不受信任的目录并在结果克隆上运行命令是安全的。
为了额外的安全级别,您可能能够以备用用户身份运行 upload-pack
。具体细节将取决于平台,但在许多系统上,您可以运行:
git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...
GIT
属于 git[1] 文档