archive: handle commits with an empty tree
[git/jnareb-git.git] / Documentation / git-tar-tree.txt
blobf7362dc2d1736a087bc897d870f22859e74dc8a6
1 git-tar-tree(1)
2 ===============
4 NAME
5 ----
6 git-tar-tree - Create a tar archive of the files in the named tree object
9 SYNOPSIS
10 --------
11 [verse]
12 'git tar-tree' [--remote=<repo>] <tree-ish> [ <base> ]
14 DESCRIPTION
15 -----------
16 THIS COMMAND IS DEPRECATED.  Use 'git archive' with `--format=tar`
17 option instead (and move the <base> argument to `--prefix=base/`).
19 Creates a tar archive containing the tree structure for the named tree.
20 When <base> is specified it is added as a leading path to the files in the
21 generated tar archive.
23 'git tar-tree' behaves differently when given a tree ID versus when given
24 a commit ID or tag ID.  In the first case the current time is used as
25 modification time of each file in the archive.  In the latter case the
26 commit time as recorded in the referenced commit object is used instead.
27 Additionally the commit ID is stored in a global extended pax header.
28 It can be extracted using 'git get-tar-commit-id'.
30 OPTIONS
31 -------
33 <tree-ish>::
34         The tree or commit to produce tar archive for.  If it is
35         the object name of a commit object.
37 <base>::
38         Leading path to the files in the resulting tar archive.
40 --remote=<repo>::
41         Instead of making a tar archive from local repository,
42         retrieve a tar archive from a remote repository.
44 CONFIGURATION
45 -------------
47 tar.umask::
48         This variable can be used to restrict the permission bits of
49         tar archive entries.  The default is 0002, which turns off the
50         world write bit.  The special value "user" indicates that the
51         archiving user's umask will be used instead.  See umask(2) for
52         details.
54 EXAMPLES
55 --------
56 `git tar-tree HEAD junk | (cd /var/tmp/ && tar xf -)`::
58         Create a tar archive that contains the contents of the
59         latest commit on the current branch, and extracts it in
60         `/var/tmp/junk` directory.
62 `git tar-tree v1.4.0 git-1.4.0 | gzip >git-1.4.0.tar.gz`::
64         Create a tarball for v1.4.0 release.
66 `git tar-tree v1.4.0^{tree} git-1.4.0 | gzip >git-1.4.0.tar.gz`::
68         Create a tarball for v1.4.0 release, but without a
69         global extended pax header.
71 `git tar-tree --remote=example.com:git.git v1.4.0 >git-1.4.0.tar`::
73         Get a tarball v1.4.0 from example.com.
75 `git tar-tree HEAD:Documentation/ git-docs > git-1.4.0-docs.tar`::
77         Put everything in the current head's Documentation/ directory
78         into 'git-1.4.0-docs.tar', with the prefix 'git-docs/'.
80 GIT
81 ---
82 Part of the linkgit:git[1] suite