<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<meta name="generator" content="AsciiDoc 8.4.5" /> | |
<title>git-archive(1)</title> | |
<style type="text/css"> | |
/* Debug borders */ | |
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { | |
/* | |
border: 1px solid red; | |
*/ | |
} | |
body { | |
margin: 1em 5% 1em 5%; | |
} | |
a { | |
color: blue; | |
text-decoration: underline; | |
} | |
a:visited { | |
color: fuchsia; | |
} | |
em { | |
font-style: italic; | |
color: navy; | |
} | |
strong { | |
font-weight: bold; | |
color: #083194; | |
} | |
tt { | |
color: navy; | |
} | |
h1, h2, h3, h4, h5, h6 { | |
color: #527bbd; | |
font-family: sans-serif; | |
margin-top: 1.2em; | |
margin-bottom: 0.5em; | |
line-height: 1.3; | |
} | |
h1, h2, h3 { | |
border-bottom: 2px solid silver; | |
} | |
h2 { | |
padding-top: 0.5em; | |
} | |
h3 { | |
float: left; | |
} | |
h3 + * { | |
clear: left; | |
} | |
div.sectionbody { | |
font-family: serif; | |
margin-left: 0; | |
} | |
hr { | |
border: 1px solid silver; | |
} | |
p { | |
margin-top: 0.5em; | |
margin-bottom: 0.5em; | |
} | |
ul, ol, li > p { | |
margin-top: 0; | |
} | |
pre { | |
padding: 0; | |
margin: 0; | |
} | |
span#author { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
font-size: 1.1em; | |
} | |
span#email { | |
} | |
span#revnumber, span#revdate, span#revremark { | |
font-family: sans-serif; | |
} | |
div#footer { | |
font-family: sans-serif; | |
font-size: small; | |
border-top: 2px solid silver; | |
padding-top: 0.5em; | |
margin-top: 4.0em; | |
} | |
div#footer-text { | |
float: left; | |
padding-bottom: 0.5em; | |
} | |
div#footer-badges { | |
float: right; | |
padding-bottom: 0.5em; | |
} | |
div#preamble { | |
margin-top: 1.5em; | |
margin-bottom: 1.5em; | |
} | |
div.tableblock, div.imageblock, div.exampleblock, div.verseblock, | |
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, | |
div.admonitionblock { | |
margin-top: 1.5em; | |
margin-bottom: 1.5em; | |
} | |
div.admonitionblock { | |
margin-top: 2.5em; | |
margin-bottom: 2.5em; | |
} | |
div.content { /* Block element content. */ | |
padding: 0; | |
} | |
/* Block element titles. */ | |
div.title, caption.title { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
text-align: left; | |
margin-top: 1.0em; | |
margin-bottom: 0.5em; | |
} | |
div.title + * { | |
margin-top: 0; | |
} | |
td div.title:first-child { | |
margin-top: 0.0em; | |
} | |
div.content div.title:first-child { | |
margin-top: 0.0em; | |
} | |
div.content + div.title { | |
margin-top: 0.0em; | |
} | |
div.sidebarblock > div.content { | |
background: #ffffee; | |
border: 1px solid silver; | |
padding: 0.5em; | |
} | |
div.listingblock > div.content { | |
border: 1px solid silver; | |
background: #f4f4f4; | |
padding: 0.5em; | |
} | |
div.quoteblock { | |
padding-left: 2.0em; | |
margin-right: 10%; | |
} | |
div.quoteblock > div.attribution { | |
padding-top: 0.5em; | |
text-align: right; | |
} | |
div.verseblock { | |
padding-left: 2.0em; | |
margin-right: 10%; | |
} | |
div.verseblock > div.content { | |
white-space: pre; | |
} | |
div.verseblock > div.attribution { | |
padding-top: 0.75em; | |
text-align: left; | |
} | |
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ | |
div.verseblock + div.attribution { | |
text-align: left; | |
} | |
div.admonitionblock .icon { | |
vertical-align: top; | |
font-size: 1.1em; | |
font-weight: bold; | |
text-decoration: underline; | |
color: #527bbd; | |
padding-right: 0.5em; | |
} | |
div.admonitionblock td.content { | |
padding-left: 0.5em; | |
border-left: 2px solid silver; | |
} | |
div.exampleblock > div.content { | |
border-left: 2px solid silver; | |
padding: 0.5em; | |
} | |
div.imageblock div.content { padding-left: 0; } | |
span.image img { border-style: none; } | |
a.image:visited { color: white; } | |
dl { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
dt { | |
margin-top: 0.5em; | |
margin-bottom: 0; | |
font-style: normal; | |
color: navy; | |
} | |
dd > *:first-child { | |
margin-top: 0.1em; | |
} | |
ul, ol { | |
list-style-position: outside; | |
} | |
ol.arabic { | |
list-style-type: decimal; | |
} | |
ol.loweralpha { | |
list-style-type: lower-alpha; | |
} | |
ol.upperalpha { | |
list-style-type: upper-alpha; | |
} | |
ol.lowerroman { | |
list-style-type: lower-roman; | |
} | |
ol.upperroman { | |
list-style-type: upper-roman; | |
} | |
div.compact ul, div.compact ol, | |
div.compact p, div.compact p, | |
div.compact div, div.compact div { | |
margin-top: 0.1em; | |
margin-bottom: 0.1em; | |
} | |
div.tableblock > table { | |
border: 3px solid #527bbd; | |
} | |
thead { | |
font-family: sans-serif; | |
font-weight: bold; | |
} | |
tfoot { | |
font-weight: bold; | |
} | |
td > div.verse { | |
white-space: pre; | |
} | |
p.table { | |
margin-top: 0; | |
} | |
/* Because the table frame attribute is overriden by CSS in most browsers. */ | |
div.tableblock > table[frame="void"] { | |
border-style: none; | |
} | |
div.tableblock > table[frame="hsides"] { | |
border-left-style: none; | |
border-right-style: none; | |
} | |
div.tableblock > table[frame="vsides"] { | |
border-top-style: none; | |
border-bottom-style: none; | |
} | |
div.hdlist { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
div.hdlist tr { | |
padding-bottom: 15px; | |
} | |
dt.hdlist1.strong, td.hdlist1.strong { | |
font-weight: bold; | |
} | |
td.hdlist1 { | |
vertical-align: top; | |
font-style: normal; | |
padding-right: 0.8em; | |
color: navy; | |
} | |
td.hdlist2 { | |
vertical-align: top; | |
} | |
div.hdlist.compact tr { | |
margin: 0; | |
padding-bottom: 0; | |
} | |
.comment { | |
background: yellow; | |
} | |
@media print { | |
div#footer-badges { display: none; } | |
} | |
div#toctitle { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-size: 1.1em; | |
font-weight: bold; | |
margin-top: 1.0em; | |
margin-bottom: 0.1em; | |
} | |
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { | |
margin-top: 0; | |
margin-bottom: 0; | |
} | |
div.toclevel2 { | |
margin-left: 2em; | |
font-size: 0.9em; | |
} | |
div.toclevel3 { | |
margin-left: 4em; | |
font-size: 0.9em; | |
} | |
div.toclevel4 { | |
margin-left: 6em; | |
font-size: 0.9em; | |
} | |
/* Overrides for manpage documents */ | |
h1 { | |
padding-top: 0.5em; | |
padding-bottom: 0.5em; | |
border-top: 2px solid silver; | |
border-bottom: 2px solid silver; | |
} | |
h2 { | |
border-style: none; | |
} | |
div.sectionbody { | |
margin-left: 5%; | |
} | |
@media print { | |
div#toc { display: none; } | |
} | |
/* Workarounds for IE6's broken and incomplete CSS2. */ | |
div.sidebar-content { | |
background: #ffffee; | |
border: 1px solid silver; | |
padding: 0.5em; | |
} | |
div.sidebar-title, div.image-title { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
margin-top: 0.0em; | |
margin-bottom: 0.5em; | |
} | |
div.listingblock div.content { | |
border: 1px solid silver; | |
background: #f4f4f4; | |
padding: 0.5em; | |
} | |
div.quoteblock-attribution { | |
padding-top: 0.5em; | |
text-align: right; | |
} | |
div.verseblock-content { | |
white-space: pre; | |
} | |
div.verseblock-attribution { | |
padding-top: 0.75em; | |
text-align: left; | |
} | |
div.exampleblock-content { | |
border-left: 2px solid silver; | |
padding-left: 0.5em; | |
} | |
/* IE6 sets dynamically generated links as visited. */ | |
div#toc a:visited { color: blue; } | |
</style> | |
</head> | |
<body> | |
<div id="header"> | |
<h1> | |
git-archive(1) Manual Page | |
</h1> | |
<h2>NAME</h2> | |
<div class="sectionbody"> | |
<p>git-archive - | |
Create an archive of files from a named tree | |
</p> | |
</div> | |
</div> | |
<h2 id="_synopsis">SYNOPSIS</h2> | |
<div class="sectionbody"> | |
<div class="verseblock"> | |
<div class="verseblock-content"><em>git archive</em> [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>] | |
[-o | --output=<file>] [--worktree-attributes] | |
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish> | |
[<path>…]</div> | |
<div class="verseblock-attribution"> | |
</div></div> | |
</div> | |
<h2 id="_description">DESCRIPTION</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>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.</p></div> | |
<div class="paragraph"><p><em>git archive</em> 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 the 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 <em>git get-tar-commit-id</em>. In ZIP files it is stored as a file | |
comment.</p></div> | |
</div> | |
<h2 id="_options">OPTIONS</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
--format=<fmt> | |
</dt> | |
<dd> | |
<p> | |
Format of the resulting archive: <em>tar</em> or <em>zip</em>. If this option | |
is not given, and the output file is specified, the format is | |
inferred from the filename if possible (e.g. writing to "foo.zip" | |
makes the output to be in the zip format). Otherwise the output | |
format is <tt>tar</tt>. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-l | |
</dt> | |
<dt class="hdlist1"> | |
--list | |
</dt> | |
<dd> | |
<p> | |
Show all available formats. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-v | |
</dt> | |
<dt class="hdlist1"> | |
--verbose | |
</dt> | |
<dd> | |
<p> | |
Report progress to stderr. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--prefix=<prefix>/ | |
</dt> | |
<dd> | |
<p> | |
Prepend <prefix>/ to each filename in the archive. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-o <file> | |
</dt> | |
<dt class="hdlist1"> | |
--output=<file> | |
</dt> | |
<dd> | |
<p> | |
Write the archive to <file> instead of stdout. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--worktree-attributes | |
</dt> | |
<dd> | |
<p> | |
Look for attributes in .gitattributes in working directory too. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
<extra> | |
</dt> | |
<dd> | |
<p> | |
This can be any options that the archiver backend understands. | |
See next section. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--remote=<repo> | |
</dt> | |
<dd> | |
<p> | |
Instead of making a tar archive from the local repository, | |
retrieve a tar archive from a remote repository. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--exec=<git-upload-archive> | |
</dt> | |
<dd> | |
<p> | |
Used with --remote to specify the path to the | |
<em>git-upload-archive</em> on the remote side. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
<tree-ish> | |
</dt> | |
<dd> | |
<p> | |
The tree or commit to produce an archive for. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
<path> | |
</dt> | |
<dd> | |
<p> | |
Without an optional path parameter, all files and subdirectories | |
of the current working directory are included in the archive. | |
If one or more paths are specified, only these are included. | |
</p> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_backend_extra_options">BACKEND EXTRA OPTIONS</h2> | |
<div class="sectionbody"> | |
<h3 id="_zip">zip</h3><div style="clear:left"></div> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
-0 | |
</dt> | |
<dd> | |
<p> | |
Store the files instead of deflating them. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-9 | |
</dt> | |
<dd> | |
<p> | |
Highest and slowest compression level. You can specify any | |
number from 1 to 9 to adjust compression speed and ratio. | |
</p> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_configuration">CONFIGURATION</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
tar.umask | |
</dt> | |
<dd> | |
<p> | |
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. | |
</p> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_attributes">ATTRIBUTES</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
export-ignore | |
</dt> | |
<dd> | |
<p> | |
Files and directories with the attribute export-ignore won’t be | |
added to archive files. See <a href="gitattributes.html">gitattributes(5)</a> for details. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
export-subst | |
</dt> | |
<dd> | |
<p> | |
If the attribute export-subst is set for a file then git will | |
expand several placeholders when adding this file to an archive. | |
See <a href="gitattributes.html">gitattributes(5)</a> for details. | |
</p> | |
</dd> | |
</dl></div> | |
<div class="paragraph"><p>Note that attributes are by default taken from the <tt>.gitattributes</tt> files | |
in the tree that is being archived. If you want to tweak the way the | |
output is generated after the fact (e.g. you committed without adding an | |
appropriate export-ignore in its <tt>.gitattributes</tt>), adjust the checked out | |
<tt>.gitattributes</tt> file as necessary and use <tt>--work-tree-attributes</tt> | |
option. Alternatively you can keep necessary attributes that should apply | |
while archiving any tree in your <tt>$GIT_DIR/info/attributes</tt> file.</p></div> | |
</div> | |
<h2 id="_examples">EXAMPLES</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -) | |
</dt> | |
<dd> | |
<p> | |
Create a tar archive that contains the contents of the | |
latest commit on the current branch, and extract it in the | |
<tt>/var/tmp/junk</tt> directory. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz | |
</dt> | |
<dd> | |
<p> | |
Create a compressed tarball for v1.4.0 release. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz | |
</dt> | |
<dd> | |
<p> | |
Create a compressed tarball for v1.4.0 release, but without a | |
global extended pax header. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip | |
</dt> | |
<dd> | |
<p> | |
Put everything in the current head’s Documentation/ directory | |
into <em>git-1.4.0-docs.zip</em>, with the prefix <em>git-docs/</em>. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
git archive -o latest.zip HEAD | |
</dt> | |
<dd> | |
<p> | |
Create a Zip archive that contains the contents of the latest | |
commit on the current branch. Note that the output format is | |
inferred by the extension of the output file. | |
</p> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_see_also">SEE ALSO</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p><a href="gitattributes.html">gitattributes(5)</a></p></div> | |
</div> | |
<h2 id="_author">Author</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>Written by Franck Bui-Huu and Rene Scharfe.</p></div> | |
</div> | |
<h2 id="_documentation">Documentation</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>Documentation by David Greaves, Junio C Hamano and the git-list <<a href="mailto:git@vger.kernel.org">git@vger.kernel.org</a>>.</p></div> | |
</div> | |
<h2 id="_git">GIT</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div> | |
</div> | |
<div id="footer"> | |
<div id="footer-text"> | |
Last updated 2010-11-06 00:41:57 UTC | |
</div> | |
</div> | |
</body> | |
</html> |