git upload-archive
优质
小牛编辑
123浏览
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 归档的存储库。