Documentation / git-upload-archive.txton commit Recommend git-filter-repo instead of git-filter-branch (9df53c5)
   1git-upload-archive(1)
   2=====================
   3
   4NAME
   5----
   6git-upload-archive - Send archive back to git-archive
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git upload-archive' <directory>
  13
  14DESCRIPTION
  15-----------
  16Invoked by 'git archive --remote' and sends a generated archive to the
  17other end over the Git protocol.
  18
  19This command is usually not invoked directly by the end user.  The UI
  20for the protocol is on the 'git archive' side, and the program pair
  21is meant to be used to get an archive from a remote repository.
  22
  23SECURITY
  24--------
  25
  26In order to protect the privacy of objects that have been removed from
  27history but may not yet have been pruned, `git-upload-archive` avoids
  28serving archives for commits and trees that are not reachable from the
  29repository's refs.  However, because calculating object reachability is
  30computationally expensive, `git-upload-archive` implements a stricter
  31but easier-to-check set of rules:
  32
  33  1. Clients may request a commit or tree that is pointed to directly by
  34     a ref. E.g., `git archive --remote=origin v1.0`.
  35
  36  2. Clients may request a sub-tree within a commit or tree using the
  37     `ref:path` syntax. E.g., `git archive --remote=origin v1.0:Documentation`.
  38
  39  3. Clients may _not_ use other sha1 expressions, even if the end
  40     result is reachable. E.g., neither a relative commit like `master^`
  41     nor a literal sha1 like `abcd1234` is allowed, even if the result
  42     is reachable from the refs.
  43
  44Note that rule 3 disallows many cases that do not have any privacy
  45implications. These rules are subject to change in future versions of
  46git, and the server accessed by `git archive --remote` may or may not
  47follow these exact rules.
  48
  49If the config option `uploadArchive.allowUnreachable` is true, these
  50rules are ignored, and clients may use arbitrary sha1 expressions.
  51This is useful if you do not care about the privacy of unreachable
  52objects, or if your object database is already publicly available for
  53access via non-smart-http.
  54
  55OPTIONS
  56-------
  57<directory>::
  58        The repository to get a tar archive from.
  59
  60GIT
  61---
  62Part of the linkgit:git[1] suite