Git
简体中文 ▾ Topics ▾ Latest version ▾ git-fetch-pack last updated in 2.43.0

名称

git-fetch-pack - 从另一个仓库接收丢失的对象

概述

git fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]
	[--upload-pack=<git-upload-pack>]
	[--depth=<n>] [--no-progress]
	[-v] <仓库> [<多个引用>…​]

描述

通常情况下,您需要使用 git fetch,它是该命令的更高级封装。

在可能的远程仓库中调用 git-upload-pack,并要求它发送该仓库中缺失的对象,以更新指定的头。 通过扫描本地 refs/ 层次结构,找出本地可用的提交列表,然后发送给另一端运行的 git-upload-pack

当本地端没有共同祖先提交时,该命令会退化为从远程端下载所有内容以完成所请求的引用。

选项

--all

获取所有远程引用。

--stdin

从标准输入流获取各个引用列表,每行一个。如果命令行中除此选项外还指定了其他引用,则会在处理命令行中的引用后再处理来自标准输入流的多个引用。

如果与此选项一起指定了 --stateless-rpc,那么引用列表必须是数据包格式(pkt-line)。每个引用必须在一个单独的数据包中,并且列表必须以清除数据包结束。

-q
--quiet

git unpack-objects 传递 -q 标志;这会使克隆过程不那么冗长。

-k
--keep

不要对接收到的数据调用 git unpack-objects,而是将其创建为一个单独的数据包文件,并将其存储在对象数据库中。如果提供两次,则会锁定数据包,防止重新打包。

--thin

获取 “精简” 数据包,根据未包含在数据包中的对象,以简化形式记录对象,以减少网络流量。

--include-tag

如果远端支持该选项,则在下载标记引用的对象时,注释标记对象将与其他对象在同一连接上下载。 否则,调用者必须确定该选项提供的标记。

--upload-pack=<git-upload-pack>

如果在您的 $PATH 中找不到 git-upload-pack,则用它来指定远端 git-upload-pack 的路径。 安装 sshd 时会忽略用户登录 shell 的环境设置脚本(例如 .bash_profile),因此系统默认的 $PATH 中可能找不到用户自行安装的 git。 另一种变通方法是在 ".bashrc" 中设置 $PATH,但这种方法只适用于不想为非交互式 shell 支付额外费用的用户(他们会在 .bash_profile 中设置大部分内容)。

--exec=<git-upload-pack>

与 --upload-pack=<git-upload-pack> 相同。

--depth=<n>

git-upload-pack 将特殊深度 2147483647 视为无穷大,即使存在这么长的祖先链。

--shallow-since=<日期>

加深或缩短浅层仓库的历史,包括<日期>之后所有可触及的提交。

--shallow-exclude=<修订版本>

深化或缩短浅层版本库的历史,以排除从指定的远程分支或标记中可以到达的提交。 这个选项可以指定多次。

--deepen-relative

参数 --depth 指定从当前浅边界开始的提交次数,而不是从每个远程分支历史的顶端开始的提交次数。

--refetch

跳过与服务器的协商提交,以获取所有匹配对象。用于重新应用新的部分克隆 blob/tree 过滤器。

--no-progress

不要显示进度。

--check-self-contained-and-connected

如果接收到的数据包是独立的且已连接,则输出 "connectivity-ok"(连接正常)。

-v

详细运行。

<仓库>

远程仓库的 URL。

<引用>…​

要更新的远程头。这是相对于 $GIT_DIR(例如 "HEAD"、"refs/heads/master")而言的。 如果未指定,则对远端所有头进行更新。

如果远程已启用选项 uploadpack.allowTipSHA1InWantuploadpack.allowReachableSHA1InWantuploadpack.allowAnySHA1InWant,它们也可以是远程仓库上的 40-hex sha1。

参见

GIT

属于 git[1] 文档

scroll-to-top