git upload-archive

优质
小牛编辑
127浏览
2023-12-01

名称

git-upload-archive - 将归档发送回 git-archive

概要

git upload-archive <directory>

描述

通过Git协议调用git archive --remote并将生成的存档发送到另一端。

该命令通常不由最终用户直接调用。该协议的用户界面位于git archive侧面,程序对旨在用于从远程存储库获取存档。

安全

为了保护已从历史记录中删除但尚未修剪过的对象的隐私,请git-upload-archive避免提供无法从存储库引用中访问的提交和树的归档文件。但是,因为计算对象可达性在计算上很昂贵,所以git-upload-archive实现了一组更严格但更易于检查的规则:

  • 客户可以请求一个提交或直接指向ref的树。例如,git archive --remote=origin v1.0
  • 客户可以使用ref:path语法在提交或树中请求子树。例如,git archive --remote=origin v1.0:Documentation
  • 即使最终结果可达,客户端也可以not使用其他 sha1 表达式。例如,即使结果可从 ref 中获得,也不允许类似master^相对提交,也不允许使用类似abcd1234文字 sha1 。

请注意,规则3不允许许多不涉及隐私影响的情况。这些规则在未来版本的 git 中可能会发生变化,并且访问的服务器git archive --remote可能会或可能不遵循这些准确的规则。

如果 config 选项uploadArchive.allowUnreachable为 true,这些规则将被忽略,客户端可以使用任意 sha1 表达式。如果您不关心无法访问的对象的隐私,或者您的对象数据库已公开可通过非智能 http 访问,这非常有用。

选项

<directory>

从中获取 tar 归档的存储库。