## 名称

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 归档的存储库。