设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.48.1 → 2.50.1 无更改
-
2.48.0
2025-01-10
- 2.43.1 → 2.47.3 无更改
-
2.43.0
2023-11-20
- 2.36.1 → 2.42.4 无变更
-
2.36.0
2022-04-18
- 2.18.1 → 2.35.8 无变更
-
2.18.0
2018-06-21
- 2.12.5 → 2.17.6 无变更
-
2.11.4
2017-09-22
- 2.10.5 无更改
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.5.6 → 2.7.6 无变更
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 无更改
-
2.0.5
2014-12-17
概要
git fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] <repository> [<refs>…]
描述
通常情况下,你会希望使用 git fetch,它是此命令的更高级别封装。
在可能远程的仓库上调用 git-upload-pack,并要求它发送此仓库中缺失的对象,以更新指定的分支。通过扫描本地的 refs/ 层级结构,可以找出本地可用的提交列表,并将其发送给在另一端运行的 git-upload-pack。
当本地没有共同祖先提交时,此命令会退化为从远程下载所有内容以完成请求的引用。
选项
- --all
-
抓取所有远程引用。
- --stdin
-
从标准输入中获取引用列表,每行一个。如果除了此选项之外,还在命令行上指定了引用,则标准输入中的引用将在命令行上的引用之后处理。
如果此选项与
--stateless-rpc
一起指定,则引用列表必须采用数据包格式(pkt-line)。每个引用必须在一个单独的数据包中,并且列表必须以一个刷新数据包结束。 - -q
- --quiet
-
将
-q
标志传递给 git unpack-objects;这使得克隆过程的输出更简洁。 - -k
- --keep
-
不对接收到的数据调用 git unpack-objects,而是从中创建一个单独的 packfile,并将其存储在对象数据库中。如果提供两次,则该 packfile 将被锁定以防止重新打包。
- --thin
-
抓取一个“瘦”pack,它以基于未包含在 pack 中的对象的 delta 形式记录对象,以减少网络流量。
- --include-tag
-
如果远程支持,则如果标签引用的对象被下载,带注解的标签对象将与其它对象在同一连接上下载。否则,调用者必须确定此选项可用的标签。
- --upload-pack=<git-upload-pack>
-
如果 git-upload-pack 在远程上未在你的 $PATH 中找到,则使用此选项指定其路径。sshd 的安装会忽略用户用于登录 shell 的环境设置脚本(例如 .bash_profile),并且你私下安装的 git 可能无法在系统默认的 $PATH 中找到。另一个建议的变通方法是在 ".bashrc" 中设置你的 $PATH,但此标志适用于那些不想通过拥有精简的 .bashrc 文件(他们大部分设置都在 .bash_profile 中)来承担非交互式 shell 开销的人。
- --exec=<git-upload-pack>
-
与 --upload-pack=<git-upload-pack> 相同。
- --depth=<n>
-
限制抓取祖先链的长度不超过 n。git-upload-pack 会将特殊深度 2147483647 视为无限,即使存在同样长的祖先链。
- --shallow-since=<date>
-
深化或缩短浅克隆仓库的历史记录,以包含 <date> 之后所有可达的提交。
- --shallow-exclude=<ref>
-
深化或缩短浅克隆仓库的历史记录,以排除从指定远程分支或标签可达的提交。此选项可以多次指定。
- --deepen-relative
-
参数 --depth 指定从当前浅层边界(而不是每个远程分支历史的尖端)开始的提交数量。
- --refetch
-
跳过与服务器的提交协商,以抓取所有匹配的对象。用于重新应用新的部分克隆 blob/tree 过滤器。
- --no-progress
-
不显示进度。
- --check-self-contained-and-connected
-
如果接收到的 packfile 是自包含且已连接的,则输出 "connectivity-ok"。
- -v
-
运行详细模式。
- <repository>
-
远程仓库的 URL。
- <refs>…
-
要更新的远程分支。这是相对于 $GIT_DIR 的(例如 "HEAD", "refs/heads/master")。未指定时,从远程端拥有的所有分支进行更新。
如果远程启用了
uploadpack.allowTipSHA1InWant
、uploadpack.allowReachableSHA1InWant
或uploadpack.allowAnySHA1InWant
选项,它们也可以是远程上存在的 40 位十六进制 SHA1。