git-archive(1)
==============

NAME
----
git-archive - Create an archive of files from a named tree


SYNOPSIS
--------
[verse]
'git archive' --format=<fmt> [--list] [--prefix=<prefix>/] [<extra>]
	      [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
	      [path...]

DESCRIPTION
-----------
Creates an archive of the specified format containing the tree
structure for the named tree, and writes it out to the standard
output.  If <prefix> is specified it is
prepended to the filenames in the archive.

'git-archive' behaves differently when given a tree ID versus when
given a commit ID or tag ID.  In the first case the current time is
used as modification time of each file in the archive.  In the latter
case the commit time as recorded in the referenced commit object is
used instead.  Additionally the commit ID is stored in a global
extended pax header if the tar format is used; it can be extracted
using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
comment.

OPTIONS
-------

--format=<fmt>::
	Format of the resulting archive: 'tar' or 'zip'.  The default
	is 'tar'.

-l::
--list::
	Show all available formats.

-v::
--verbose::
	Report progress to stderr.

--prefix=<prefix>/::
	Prepend <prefix>/ to each filename in the archive.

<extra>::
	This can be any options that the archiver backend understand.
	See next section.

--remote=<repo>::
	Instead of making a tar archive from local repository,
	retrieve a tar archive from a remote repository.

--exec=<git-upload-archive>::
	Used with --remote to specify the path to the
	'git-upload-archive' on the remote side.

<tree-ish>::
	The tree or commit to produce an archive for.

path::
	If one or more paths are specified, include only these in the
	archive, otherwise include all files and subdirectories.

BACKEND EXTRA OPTIONS
---------------------

zip
~~~
-0::
	Store the files instead of deflating them.
-9::
	Highest and slowest compression level.  You can specify any
	number from 1 to 9 to adjust compression speed and ratio.


CONFIGURATION
-------------

tar.umask::
	This variable can be used to restrict the permission bits of
	tar archive entries.  The default is 0002, which turns off the
	world write bit.  The special value "user" indicates that the
	archiving user's umask will be used instead.  See umask(2) for
	details.

EXAMPLES
--------
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::

	Create a tar archive that contains the contents of the
	latest commit on the current branch, and extracts it in
	`/var/tmp/junk` directory.

git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz::

	Create a compressed tarball for v1.4.0 release.

git archive --format=tar --prefix=git-1.4.0/ v1.4.0{caret}\{tree\} | gzip >git-1.4.0.tar.gz::

	Create a compressed tarball for v1.4.0 release, but without a
	global extended pax header.

git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip::

	Put everything in the current head's Documentation/ directory
	into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.

Author
------
Written by Franck Bui-Huu and Rene Scharfe.

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the linkgit:git[1] suite
