]>
Commit | Line | Data |
---|---|---|
4df096a5 FBH |
1 | git-archive(1) |
2 | ============== | |
3 | ||
4 | NAME | |
5 | ---- | |
29cf5e12 | 6 | git-archive - Create an archive of files from a named tree |
4df096a5 FBH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
e448ff87 | 11 | [verse] |
82d97da3 | 12 | 'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>] |
05d3951e | 13 | [-o | --output=<file>] [--worktree-attributes] |
c005c6aa | 14 | [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish> |
62b4698e | 15 | [<path>...] |
4df096a5 FBH |
16 | |
17 | DESCRIPTION | |
18 | ----------- | |
19 | Creates an archive of the specified format containing the tree | |
42b5f869 JA |
20 | structure for the named tree, and writes it out to the standard |
21 | output. If <prefix> is specified it is | |
4df096a5 FBH |
22 | prepended to the filenames in the archive. |
23 | ||
0b444cdb | 24 | 'git archive' behaves differently when given a tree ID versus when |
4df096a5 | 25 | given a commit ID or tag ID. In the first case the current time is |
3f7cdf32 | 26 | used as the modification time of each file in the archive. In the latter |
4df096a5 FBH |
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 | |
0b444cdb | 30 | using 'git get-tar-commit-id'. In ZIP files it is stored as a file |
4df096a5 FBH |
31 | comment. |
32 | ||
33 | OPTIONS | |
34 | ------- | |
35 | ||
36 | --format=<fmt>:: | |
0f4b377c DP |
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 | |
41 | format is `tar`. | |
4df096a5 | 42 | |
3240240f SB |
43 | -l:: |
44 | --list:: | |
4df096a5 FBH |
45 | Show all available formats. |
46 | ||
3240240f SB |
47 | -v:: |
48 | --verbose:: | |
27c8f8cd AR |
49 | Report progress to stderr. |
50 | ||
4df096a5 FBH |
51 | --prefix=<prefix>/:: |
52 | Prepend <prefix>/ to each filename in the archive. | |
53 | ||
05d3951e | 54 | -o <file>:: |
aec0c1bb CMDV |
55 | --output=<file>:: |
56 | Write the archive to <file> instead of stdout. | |
57 | ||
ba053ea9 NTND |
58 | --worktree-attributes:: |
59 | Look for attributes in .gitattributes in working directory too. | |
60 | ||
4df096a5 | 61 | <extra>:: |
3f7cdf32 | 62 | This can be any options that the archiver backend understands. |
e8daf78a | 63 | See next section. |
4df096a5 FBH |
64 | |
65 | --remote=<repo>:: | |
3f7cdf32 | 66 | Instead of making a tar archive from the local repository, |
4df096a5 FBH |
67 | retrieve a tar archive from a remote repository. |
68 | ||
c005c6aa MB |
69 | --exec=<git-upload-archive>:: |
70 | Used with --remote to specify the path to the | |
ba020ef5 | 71 | 'git-upload-archive' on the remote side. |
c005c6aa | 72 | |
4df096a5 FBH |
73 | <tree-ish>:: |
74 | The tree or commit to produce an archive for. | |
75 | ||
62b4698e | 76 | <path>:: |
165ca621 RS |
77 | Without an optional path parameter, all files and subdirectories |
78 | of the current working directory are included in the archive. | |
79 | If one or more paths are specified, only these are included. | |
4df096a5 | 80 | |
e8daf78a FBH |
81 | BACKEND EXTRA OPTIONS |
82 | --------------------- | |
83 | ||
84 | zip | |
85 | ~~~ | |
86 | -0:: | |
87 | Store the files instead of deflating them. | |
88 | -9:: | |
89 | Highest and slowest compression level. You can specify any | |
90 | number from 1 to 9 to adjust compression speed and ratio. | |
91 | ||
92 | ||
4df096a5 FBH |
93 | CONFIGURATION |
94 | ------------- | |
4df096a5 | 95 | |
687157c7 RS |
96 | tar.umask:: |
97 | This variable can be used to restrict the permission bits of | |
98 | tar archive entries. The default is 0002, which turns off the | |
99 | world write bit. The special value "user" indicates that the | |
100 | archiving user's umask will be used instead. See umask(2) for | |
101 | details. | |
4df096a5 | 102 | |
8d1b9d23 RL |
103 | ATTRIBUTES |
104 | ---------- | |
105 | ||
106 | export-ignore:: | |
107 | Files and directories with the attribute export-ignore won't be | |
108 | added to archive files. See linkgit:gitattributes[5] for details. | |
109 | ||
110 | export-subst:: | |
111 | If the attribute export-subst is set for a file then git will | |
112 | expand several placeholders when adding this file to an archive. | |
113 | See linkgit:gitattributes[5] for details. | |
114 | ||
9b4c8b0a JH |
115 | Note that attributes are by default taken from the `.gitattributes` files |
116 | in the tree that is being archived. If you want to tweak the way the | |
117 | output is generated after the fact (e.g. you committed without adding an | |
118 | appropriate export-ignore in its `.gitattributes`), adjust the checked out | |
fc7642a0 | 119 | `.gitattributes` file as necessary and use `--worktree-attributes` |
9b4c8b0a JH |
120 | option. Alternatively you can keep necessary attributes that should apply |
121 | while archiving any tree in your `$GIT_DIR/info/attributes` file. | |
122 | ||
4df096a5 FBH |
123 | EXAMPLES |
124 | -------- | |
125 | git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -):: | |
126 | ||
127 | Create a tar archive that contains the contents of the | |
3f7cdf32 | 128 | latest commit on the current branch, and extract it in the |
4df096a5 FBH |
129 | `/var/tmp/junk` directory. |
130 | ||
131 | git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz:: | |
132 | ||
133 | Create a compressed tarball for v1.4.0 release. | |
134 | ||
135 | git archive --format=tar --prefix=git-1.4.0/ v1.4.0{caret}\{tree\} | gzip >git-1.4.0.tar.gz:: | |
136 | ||
137 | Create a compressed tarball for v1.4.0 release, but without a | |
138 | global extended pax header. | |
139 | ||
140 | git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip:: | |
141 | ||
142 | Put everything in the current head's Documentation/ directory | |
143 | into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'. | |
144 | ||
0f4b377c DP |
145 | git archive -o latest.zip HEAD:: |
146 | ||
147 | Create a Zip archive that contains the contents of the latest | |
148 | commit on the current branch. Note that the output format is | |
149 | inferred by the extension of the output file. | |
150 | ||
8d1b9d23 RL |
151 | |
152 | SEE ALSO | |
153 | -------- | |
154 | linkgit:gitattributes[5] | |
155 | ||
4df096a5 FBH |
156 | GIT |
157 | --- | |
9e1f0a85 | 158 | Part of the linkgit:git[1] suite |