|  | git-upload-archive(1) | 
|  | ===================== | 
|  |  | 
|  | NAME | 
|  | ---- | 
|  | git-upload-archive - Send archive back to git-archive | 
|  |  | 
|  |  | 
|  | SYNOPSIS | 
|  | -------- | 
|  | [verse] | 
|  | 'git upload-archive' <directory> | 
|  |  | 
|  | DESCRIPTION | 
|  | ----------- | 
|  | Invoked by 'git archive --remote' and sends a generated archive to the | 
|  | other end over the Git protocol. | 
|  |  | 
|  | This command is usually not invoked directly by the end user.  The UI | 
|  | for the protocol is on the 'git archive' side, and the program pair | 
|  | is meant to be used to get an archive from a remote repository. | 
|  |  | 
|  | SECURITY | 
|  | -------- | 
|  |  | 
|  | In order to protect the privacy of objects that have been removed from | 
|  | history but may not yet have been pruned, `git-upload-archive` avoids | 
|  | serving archives for commits and trees that are not reachable from the | 
|  | repository's refs.  However, because calculating object reachability is | 
|  | computationally expensive, `git-upload-archive` implements a stricter | 
|  | but easier-to-check set of rules: | 
|  |  | 
|  | 1. Clients may request a commit or tree that is pointed to directly by | 
|  | a ref. E.g., `git archive --remote=origin v1.0`. | 
|  |  | 
|  | 2. Clients may request a sub-tree within a commit or tree using the | 
|  | `ref:path` syntax. E.g., `git archive --remote=origin v1.0:Documentation`. | 
|  |  | 
|  | 3. Clients may _not_ use other sha1 expressions, even if the end | 
|  | result is reachable. E.g., neither a relative commit like `master^` | 
|  | nor a literal sha1 like `abcd1234` is allowed, even if the result | 
|  | is reachable from the refs. | 
|  |  | 
|  | Note that rule 3 disallows many cases that do not have any privacy | 
|  | implications. These rules are subject to change in future versions of | 
|  | git, and the server accessed by `git archive --remote` may or may not | 
|  | follow these exact rules. | 
|  |  | 
|  | If the config option `uploadArchive.allowUnreachable` is true, these | 
|  | rules are ignored, and clients may use arbitrary sha1 expressions. | 
|  | This is useful if you do not care about the privacy of unreachable | 
|  | objects, or if your object database is already publicly available for | 
|  | access via non-smart-http. | 
|  |  | 
|  | OPTIONS | 
|  | ------- | 
|  | <directory>:: | 
|  | The repository to get a tar archive from. | 
|  |  | 
|  | GIT | 
|  | --- | 
|  | Part of the linkgit:git[1] suite |