6 git-archive - Create an archive of files from a named tree
 
  12 'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
 
  13               [-o <file> | --output=<file>] [--worktree-attributes]
 
  14               [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
 
  19 Creates an archive of the specified format containing the tree
 
  20 structure for the named tree, and writes it out to the standard
 
  21 output.  If <prefix> is specified it is
 
  22 prepended to the filenames in the archive.
 
  24 'git archive' behaves differently when given a tree ID versus when
 
  25 given a commit ID or tag ID.  In the first case the current time is
 
  26 used as the modification time of each file in the archive.  In the latter
 
  27 case the commit time as recorded in the referenced commit object is
 
  28 used instead.  Additionally the commit ID is stored in a global
 
  29 extended pax header if the tar format is used; it can be extracted
 
  30 using 'git get-tar-commit-id'. In ZIP files it is stored as a file
 
  37         Format of the resulting archive: 'tar' or 'zip'. If this option
 
  38         is not given, and the output file is specified, the format is
 
  39         inferred from the filename if possible (e.g. writing to "foo.zip"
 
  40         makes the output to be in the zip format). Otherwise the output
 
  45         Show all available formats.
 
  49         Report progress to stderr.
 
  52         Prepend <prefix>/ to each filename in the archive.
 
  56         Write the archive to <file> instead of stdout.
 
  58 --worktree-attributes::
 
  59         Look for attributes in .gitattributes files in the working tree
 
  60         as well (see <<ATTRIBUTES>>).
 
  63         This can be any options that the archiver backend understands.
 
  67         Instead of making a tar archive from the local repository,
 
  68         retrieve a tar archive from a remote repository. Note that the
 
  69         remote repository may place restrictions on which sha1
 
  70         expressions may be allowed in `<tree-ish>`. See
 
  71         linkgit:git-upload-archive[1] for details.
 
  73 --exec=<git-upload-archive>::
 
  74         Used with --remote to specify the path to the
 
  75         'git-upload-archive' on the remote side.
 
  78         The tree or commit to produce an archive for.
 
  81         Without an optional path parameter, all files and subdirectories
 
  82         of the current working directory are included in the archive.
 
  83         If one or more paths are specified, only these are included.
 
  91         Store the files instead of deflating them.
 
  93         Highest and slowest compression level.  You can specify any
 
  94         number from 1 to 9 to adjust compression speed and ratio.
 
 101         This variable can be used to restrict the permission bits of
 
 102         tar archive entries.  The default is 0002, which turns off the
 
 103         world write bit.  The special value "user" indicates that the
 
 104         archiving user's umask will be used instead.  See umask(2) for
 
 105         details.  If `--remote` is used then only the configuration of
 
 106         the remote repository takes effect.
 
 108 tar.<format>.command::
 
 109         This variable specifies a shell command through which the tar
 
 110         output generated by `git archive` should be piped. The command
 
 111         is executed using the shell with the generated tar file on its
 
 112         standard input, and should produce the final output on its
 
 113         standard output. Any compression-level options will be passed
 
 114         to the command (e.g., "-9"). An output file with the same
 
 115         extension as `<format>` will be use this format if no other
 
 118 The "tar.gz" and "tgz" formats are defined automatically and default to
 
 119 `gzip -cn`. You may override them with custom commands.
 
 121 tar.<format>.remote::
 
 122         If true, enable `<format>` for use by remote clients via
 
 123         linkgit:git-upload-archive[1]. Defaults to false for
 
 124         user-defined formats, but true for the "tar.gz" and "tgz"
 
 132         Files and directories with the attribute export-ignore won't be
 
 133         added to archive files.  See linkgit:gitattributes[5] for details.
 
 136         If the attribute export-subst is set for a file then Git will
 
 137         expand several placeholders when adding this file to an archive.
 
 138         See linkgit:gitattributes[5] for details.
 
 140 Note that attributes are by default taken from the `.gitattributes` files
 
 141 in the tree that is being archived.  If you want to tweak the way the
 
 142 output is generated after the fact (e.g. you committed without adding an
 
 143 appropriate export-ignore in its `.gitattributes`), adjust the checked out
 
 144 `.gitattributes` file as necessary and use `--worktree-attributes`
 
 145 option.  Alternatively you can keep necessary attributes that should apply
 
 146 while archiving any tree in your `$GIT_DIR/info/attributes` file.
 
 150 `git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)`::
 
 152         Create a tar archive that contains the contents of the
 
 153         latest commit on the current branch, and extract it in the
 
 154         `/var/tmp/junk` directory.
 
 156 `git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz`::
 
 158         Create a compressed tarball for v1.4.0 release.
 
 160 `git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz`::
 
 162         Same as above, but using the builtin tar.gz handling.
 
 164 `git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0`::
 
 166         Same as above, but the format is inferred from the output file.
 
 168 `git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz`::
 
 170         Create a compressed tarball for v1.4.0 release, but without a
 
 171         global extended pax header.
 
 173 `git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip`::
 
 175         Put everything in the current head's Documentation/ directory
 
 176         into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.
 
 178 `git archive -o latest.zip HEAD`::
 
 180         Create a Zip archive that contains the contents of the latest
 
 181         commit on the current branch. Note that the output format is
 
 182         inferred by the extension of the output file.
 
 184 `git config tar.tar.xz.command "xz -c"`::
 
 186         Configure a "tar.xz" format for making LZMA-compressed tarfiles.
 
 187         You can use it specifying `--format=tar.xz`, or by creating an
 
 188         output file like `-o foo.tar.xz`.
 
 193 linkgit:gitattributes[5]
 
 197 Part of the linkgit:git[1] suite