Documentation / git-archive.txton commit Merge branch 'jc/maint-1.6.0-keep-pack' (3c91bf6)
   1git-archive(1)
   2==============
   3
   4NAME
   5----
   6git-archive - Create an archive of files from a named tree
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git archive' --format=<fmt> [--list] [--prefix=<prefix>/] [<extra>]
  13              [--output=<file>]
  14              [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
  15              [path...]
  16
  17DESCRIPTION
  18-----------
  19Creates an archive of the specified format containing the tree
  20structure for the named tree, and writes it out to the standard
  21output.  If <prefix> is specified it is
  22prepended to the filenames in the archive.
  23
  24'git-archive' behaves differently when given a tree ID versus when
  25given a commit ID or tag ID.  In the first case the current time is
  26used as the modification time of each file in the archive.  In the latter
  27case the commit time as recorded in the referenced commit object is
  28used instead.  Additionally the commit ID is stored in a global
  29extended pax header if the tar format is used; it can be extracted
  30using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
  31comment.
  32
  33OPTIONS
  34-------
  35
  36--format=<fmt>::
  37        Format of the resulting archive: 'tar' or 'zip'.  The default
  38        is 'tar'.
  39
  40-l::
  41--list::
  42        Show all available formats.
  43
  44-v::
  45--verbose::
  46        Report progress to stderr.
  47
  48--prefix=<prefix>/::
  49        Prepend <prefix>/ to each filename in the archive.
  50
  51--output=<file>::
  52        Write the archive to <file> instead of stdout.
  53
  54<extra>::
  55        This can be any options that the archiver backend understands.
  56        See next section.
  57
  58--remote=<repo>::
  59        Instead of making a tar archive from the local repository,
  60        retrieve a tar archive from a remote repository.
  61
  62--exec=<git-upload-archive>::
  63        Used with --remote to specify the path to the
  64        'git-upload-archive' on the remote side.
  65
  66<tree-ish>::
  67        The tree or commit to produce an archive for.
  68
  69path::
  70        If one or more paths are specified, include only these in the
  71        archive, otherwise include all files and subdirectories.
  72
  73BACKEND EXTRA OPTIONS
  74---------------------
  75
  76zip
  77~~~
  78-0::
  79        Store the files instead of deflating them.
  80-9::
  81        Highest and slowest compression level.  You can specify any
  82        number from 1 to 9 to adjust compression speed and ratio.
  83
  84
  85CONFIGURATION
  86-------------
  87
  88tar.umask::
  89        This variable can be used to restrict the permission bits of
  90        tar archive entries.  The default is 0002, which turns off the
  91        world write bit.  The special value "user" indicates that the
  92        archiving user's umask will be used instead.  See umask(2) for
  93        details.
  94
  95ATTRIBUTES
  96----------
  97
  98export-ignore::
  99        Files and directories with the attribute export-ignore won't be
 100        added to archive files.  See linkgit:gitattributes[5] for details.
 101
 102export-subst::
 103        If the attribute export-subst is set for a file then git will
 104        expand several placeholders when adding this file to an archive.
 105        See linkgit:gitattributes[5] for details.
 106
 107EXAMPLES
 108--------
 109git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::
 110
 111        Create a tar archive that contains the contents of the
 112        latest commit on the current branch, and extract it in the
 113        `/var/tmp/junk` directory.
 114
 115git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz::
 116
 117        Create a compressed tarball for v1.4.0 release.
 118
 119git archive --format=tar --prefix=git-1.4.0/ v1.4.0{caret}\{tree\} | gzip >git-1.4.0.tar.gz::
 120
 121        Create a compressed tarball for v1.4.0 release, but without a
 122        global extended pax header.
 123
 124git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip::
 125
 126        Put everything in the current head's Documentation/ directory
 127        into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.
 128
 129
 130SEE ALSO
 131--------
 132linkgit:gitattributes[5]
 133
 134Author
 135------
 136Written by Franck Bui-Huu and Rene Scharfe.
 137
 138Documentation
 139--------------
 140Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 141
 142GIT
 143---
 144Part of the linkgit:git[1] suite