1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" />
6 <meta name=
"generator" content=
"AsciiDoc 8.5.2" />
7 <title>git-archive(
1)
</title>
8 <style type=
"text/css">
10 p
, li
, dt
, dd
, div
, pre
, h1
, h2
, h3
, h4
, h5
, h6
{
12 border: 1px solid red;
17 margin: 1em 5% 1em 5%;
22 text-decoration: underline
;
42 h1
, h2
, h3
, h4
, h5
, h6
{
44 font-family: sans-serif
;
51 border-bottom: 2px solid silver
;
69 border: 1px solid silver
;
88 font-family: sans-serif
;
94 span#revnumber
, span#revdate
, span#revremark
{
95 font-family: sans-serif
;
99 font-family: sans-serif
;
101 border-top: 2px solid silver
;
107 padding-bottom: 0.5em;
111 padding-bottom: 0.5em;
116 margin-bottom: 1.5em;
118 div
.tableblock
, div
.imageblock
, div
.exampleblock
, div
.verseblock
,
119 div
.quoteblock
, div
.literalblock
, div
.listingblock
, div
.sidebarblock
,
120 div
.admonitionblock
{
122 margin-bottom: 1.5em;
124 div
.admonitionblock
{
126 margin-bottom: 2.0em;
131 div
.content
{ /* Block element content. */
135 /* Block element titles. */
136 div
.title
, caption
.title
{
138 font-family: sans-serif
;
142 margin-bottom: 0.5em;
148 td div
.title:first-child
{
151 div
.content div
.title:first-child
{
154 div
.content
+ div
.title
{
158 div
.sidebarblock
> div
.content
{
160 border: 1px solid silver
;
164 div
.listingblock
> div
.content
{
165 border: 1px solid silver
;
170 div
.quoteblock
, div
.verseblock
{
174 border-left: 5px solid
#dddddd;
178 div
.quoteblock
> div
.attribution
{
183 div
.verseblock
> div
.content
{
186 div
.verseblock
> div
.attribution
{
190 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
191 div
.verseblock
+ div
.attribution
{
195 div
.admonitionblock
.icon
{
199 text-decoration: underline
;
201 padding-right: 0.5em;
203 div
.admonitionblock td
.content
{
205 border-left: 3px solid
#dddddd;
208 div
.exampleblock
> div
.content
{
209 border-left: 3px solid
#dddddd;
213 div
.imageblock div
.content
{ padding-left: 0; }
214 span
.image img
{ border-style: none
; }
215 a
.image:visited
{ color: white
; }
219 margin-bottom: 0.8em;
232 list-style-position: outside
;
235 list-style-type: decimal
;
238 list-style-type: lower-alpha
;
241 list-style-type: upper-alpha
;
244 list-style-type: lower-roman
;
247 list-style-type: upper-roman
;
250 div
.compact ul
, div
.compact ol
,
251 div
.compact p
, div
.compact p
,
252 div
.compact div
, div
.compact div
{
254 margin-bottom: 0.1em;
257 div
.tableblock
> table
{
258 border: 3px solid
#527bbd;
260 thead
, p
.table
.header
{
261 font-family: sans-serif
;
273 /* Because the table frame attribute is overriden by CSS in most browsers. */
274 div
.tableblock
> table
[frame
="void"] {
277 div
.tableblock
> table
[frame
="hsides"] {
278 border-left-style: none
;
279 border-right-style: none
;
281 div
.tableblock
> table
[frame
="vsides"] {
282 border-top-style: none
;
283 border-bottom-style: none
;
289 margin-bottom: 0.8em;
292 padding-bottom: 15px;
294 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
300 padding-right: 0.8em;
306 div
.hdlist
.compact tr
{
315 .footnote, .footnoteref {
319 span
.footnote
, span
.footnoteref
{
320 vertical-align: super
;
324 margin: 20px 0 20px 0;
328 #footnotes div
.footnote
{
334 border-top: 1px solid silver
;
344 div#footer-badges
{ display: none
; }
348 margin-bottom: 2.5em;
353 font-family: sans-serif
;
357 margin-bottom: 0.1em;
360 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
376 /* Overrides for manpage documents */
379 padding-bottom: 0.5em;
380 border-top: 2px solid silver
;
381 border-bottom: 2px solid silver
;
391 div#toc
{ display: none
; }
394 /* Workarounds for IE6's broken and incomplete CSS2. */
396 div
.sidebar-content
{
398 border: 1px solid silver
;
401 div
.sidebar-title
, div
.image-title
{
403 font-family: sans-serif
;
406 margin-bottom: 0.5em;
409 div
.listingblock div
.content
{
410 border: 1px solid silver
;
415 div
.quoteblock-attribution
{
420 div
.verseblock-content
{
423 div
.verseblock-attribution
{
428 div
.exampleblock-content
{
429 border-left: 3px solid
#dddddd;
433 /* IE6 sets dynamically generated links as visited. */
434 div#toc
a:visited
{ color: blue
; }
436 <script type=
"text/javascript">
438 window
.onload = function(){asciidoc
.footnotes();}
439 var asciidoc
= { // Namespace.
441 /////////////////////////////////////////////////////////////////////
442 // Table Of Contents generator
443 /////////////////////////////////////////////////////////////////////
445 /* Author: Mihai Bazon, September 2002
446 * http://students.infoiasi.ro/~mishoo
448 * Table Of Content generator
451 * Feel free to use this script under the terms of the GNU General Public
452 * License, as long as you do not remove or alter this notice.
455 /* modified by Troy D. Hanson, September 2006. License: GPL */
456 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
459 toc: function (toclevels
) {
461 function getText(el
) {
463 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
464 if (i
.nodeType
== 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
466 else if (i
.firstChild
!= null)
472 function TocEntry(el
, text
, toclevel
) {
475 this.toclevel
= toclevel
;
478 function tocEntries(el
, toclevels
) {
479 var result
= new Array
;
480 var re
= new RegExp('[hH]([2-'+(toclevels
+1)+'])');
481 // Function that scans the DOM tree for header elements (the DOM2
482 // nodeIterator API would be a better technique but not supported by all
484 var iterate = function (el
) {
485 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
486 if (i
.nodeType
== 1 /* Node.ELEMENT_NODE */) {
487 var mo
= re
.exec(i
.tagName
);
488 if (mo
&& (i
.getAttribute("class") || i
.getAttribute("className")) != "float") {
489 result
[result
.length
] = new TocEntry(i
, getText(i
), mo
[1]-1);
499 var toc
= document
.getElementById("toc");
500 var entries
= tocEntries(document
.getElementById("content"), toclevels
);
501 for (var i
= 0; i
< entries
.length
; ++i
) {
502 var entry
= entries
[i
];
503 if (entry
.element
.id
== "")
504 entry
.element
.id
= "_toc_" + i
;
505 var a
= document
.createElement("a");
506 a
.href
= "#" + entry
.element
.id
;
507 a
.appendChild(document
.createTextNode(entry
.text
));
508 var div
= document
.createElement("div");
510 div
.className
= "toclevel" + entry
.toclevel
;
511 toc
.appendChild(div
);
513 if (entries
.length
== 0)
514 toc
.parentNode
.removeChild(toc
);
518 /////////////////////////////////////////////////////////////////////
519 // Footnotes generator
520 /////////////////////////////////////////////////////////////////////
522 /* Based on footnote generation code from:
523 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
526 footnotes: function () {
527 var cont
= document
.getElementById("content");
528 var noteholder
= document
.getElementById("footnotes");
529 var spans
= cont
.getElementsByTagName("span");
532 for (i
=0; i
<spans
.length
; i
++) {
533 if (spans
[i
].className
== "footnote") {
535 // Use [\s\S] in place of . so multi-line matches work.
536 // Because JavaScript has no s (dotall) regex flag.
537 note
= spans
[i
].innerHTML
.match(/\s*\[([\s\S]*)]\s*/)[1];
538 noteholder
.innerHTML
+=
539 "<div class='footnote' id='_footnote_" + n
+ "'>" +
540 "<a href='#_footnoteref_" + n
+ "' title='Return to text'>" +
541 n
+ "</a>. " + note
+ "</div>";
543 "[<a id='_footnoteref_" + n
+ "' href='#_footnote_" + n
+
544 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
545 var id
=spans
[i
].getAttribute("id");
546 if (id
!= null) refs
["#"+id
] = n
;
550 noteholder
.parentNode
.removeChild(noteholder
);
552 // Process footnoterefs.
553 for (i
=0; i
<spans
.length
; i
++) {
554 if (spans
[i
].className
== "footnoteref") {
555 var href
= spans
[i
].getElementsByTagName("a")[0].getAttribute("href");
556 href
= href
.match(/#.*/)[0]; // Because IE return full URL.
559 "[<a href='#_footnote_" + n
+
560 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
573 git-archive(
1) Manual Page
576 <div class=
"sectionbody">
578 Create an archive of files from a named tree
583 <h2 id=
"_synopsis">SYNOPSIS
</h2>
584 <div class=
"sectionbody">
585 <div class=
"verseblock">
586 <div class=
"verseblock-content"><em>git archive
</em> [--format=
<fmt
>] [--list] [--prefix=
<prefix
>/] [
<extra
>]
587 [-o | --output=
<file
>] [--worktree-attributes]
588 [--remote=
<repo
> [--exec=
<git-upload-archive
>]]
<tree-ish
>
589 [
<path
>…]
</div>
590 <div class=
"verseblock-attribution">
593 <h2 id=
"_description">DESCRIPTION
</h2>
594 <div class=
"sectionbody">
595 <div class=
"paragraph"><p>Creates an archive of the specified format containing the tree
596 structure for the named tree, and writes it out to the standard
597 output. If
<prefix
> is specified it is
598 prepended to the filenames in the archive.
</p></div>
599 <div class=
"paragraph"><p><em>git archive
</em> behaves differently when given a tree ID versus when
600 given a commit ID or tag ID. In the first case the current time is
601 used as the modification time of each file in the archive. In the latter
602 case the commit time as recorded in the referenced commit object is
603 used instead. Additionally the commit ID is stored in a global
604 extended pax header if the tar format is used; it can be extracted
605 using
<em>git get-tar-commit-id
</em>. In ZIP files it is stored as a file
608 <h2 id=
"_options">OPTIONS
</h2>
609 <div class=
"sectionbody">
610 <div class=
"dlist"><dl>
616 Format of the resulting archive:
<em>tar
</em> or
<em>zip
</em>. If this option
617 is not given, and the output file is specified, the format is
618 inferred from the filename if possible (e.g. writing to
"foo.zip"
619 makes the output to be in the zip format). Otherwise the output
620 format is
<tt>tar
</tt>.
631 Show all available formats.
642 Report progress to stderr.
646 --prefix=
<prefix
>/
650 Prepend
<prefix
>/ to each filename in the archive.
657 --output=
<file
>
661 Write the archive to
<file
> instead of stdout.
665 --worktree-attributes
669 Look for attributes in .gitattributes in working directory too.
677 This can be any options that the archiver backend understands.
682 --remote=
<repo
>
686 Instead of making a tar archive from the local repository,
687 retrieve a tar archive from a remote repository.
691 --exec=
<git-upload-archive
>
695 Used with --remote to specify the path to the
696 <em>git-upload-archive
</em> on the remote side.
704 The tree or commit to produce an archive for.
712 Without an optional path parameter, all files and subdirectories
713 of the current working directory are included in the archive.
714 If one or more paths are specified, only these are included.
719 <h2 id=
"_backend_extra_options">BACKEND EXTRA OPTIONS
</h2>
720 <div class=
"sectionbody">
721 <h3 id=
"_zip">zip
</h3><div style=
"clear:left"></div>
722 <div class=
"dlist"><dl>
728 Store the files instead of deflating them.
736 Highest and slowest compression level. You can specify any
737 number from
1 to
9 to adjust compression speed and ratio.
742 <h2 id=
"_configuration">CONFIGURATION
</h2>
743 <div class=
"sectionbody">
744 <div class=
"dlist"><dl>
750 This variable can be used to restrict the permission bits of
751 tar archive entries. The default is
0002, which turns off the
752 world write bit. The special value
"user" indicates that the
753 archiving user
’s umask will be used instead. See umask(
2) for
754 details. If
<tt>--remote
</tt> is used then only the configuration of
755 the remote repository takes effect.
759 tar.
<format
>.command
763 This variable specifies a shell command through which the tar
764 output generated by
<tt>git archive
</tt> should be piped. The command
765 is executed using the shell with the generated tar file on its
766 standard input, and should produce the final output on its
767 standard output. Any compression-level options will be passed
768 to the command (e.g.,
"-9"). An output file with the same
769 extension as
<tt><format
></tt> will be use this format if no other
772 <div class=
"paragraph"><p>The
"tar.gz" and
"tgz" formats are defined automatically and default to
773 <tt>gzip -cn
</tt>. You may override them with custom commands.
</p></div>
776 tar.
<format
>.remote
780 If true, enable
<tt><format
></tt> for use by remote clients via
781 <a href=
"git-upload-archive.html">git-upload-archive(
1)
</a>. Defaults to false for
782 user-defined formats, but true for the
"tar.gz" and
"tgz"
788 <h2 id=
"_attributes">ATTRIBUTES
</h2>
789 <div class=
"sectionbody">
790 <div class=
"dlist"><dl>
796 Files and directories with the attribute export-ignore won
’t be
797 added to archive files. See
<a href=
"gitattributes.html">gitattributes(
5)
</a> for details.
805 If the attribute export-subst is set for a file then git will
806 expand several placeholders when adding this file to an archive.
807 See
<a href=
"gitattributes.html">gitattributes(
5)
</a> for details.
811 <div class=
"paragraph"><p>Note that attributes are by default taken from the
<tt>.gitattributes
</tt> files
812 in the tree that is being archived. If you want to tweak the way the
813 output is generated after the fact (e.g. you committed without adding an
814 appropriate export-ignore in its
<tt>.gitattributes
</tt>), adjust the checked out
815 <tt>.gitattributes
</tt> file as necessary and use
<tt>--worktree-attributes
</tt>
816 option. Alternatively you can keep necessary attributes that should apply
817 while archiving any tree in your
<tt>$GIT_DIR/info/attributes
</tt> file.
</p></div>
819 <h2 id=
"_examples">EXAMPLES
</h2>
820 <div class=
"sectionbody">
821 <div class=
"dlist"><dl>
823 <tt>git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/
&& tar xf -)
</tt>
827 Create a tar archive that contains the contents of the
828 latest commit on the current branch, and extract it in the
829 <tt>/var/tmp/junk
</tt> directory.
833 <tt>git archive --format=tar --prefix=git-
1.4.0/ v1.4
.0 | gzip
>git-
1.4.0.tar.gz
</tt>
837 Create a compressed tarball for v1.4
.0 release.
841 <tt>git archive --format=tar.gz --prefix=git-
1.4.0/ v1.4
.0 >git-
1.4.0.tar.gz
</tt>
845 Same as above, but using the builtin tar.gz handling.
849 <tt>git archive --prefix=git-
1.4.0/ -o git-
1.4.0.tar.gz v1.4
.0</tt>
853 Same as above, but the format is inferred from the output file.
857 <tt>git archive --format=tar --prefix=git-
1.4.0/ v1.4
.0^{tree} | gzip
>git-
1.4.0.tar.gz
</tt>
861 Create a compressed tarball for v1.4
.0 release, but without a
862 global extended pax header.
866 <tt>git archive --format=zip --prefix=git-docs/ HEAD:Documentation/
> git-
1.4.0-docs.zip
</tt>
870 Put everything in the current head
’s Documentation/ directory
871 into
<em>git-
1.4.0-docs.zip
</em>, with the prefix
<em>git-docs/
</em>.
875 <tt>git archive -o latest.zip HEAD
</tt>
879 Create a Zip archive that contains the contents of the latest
880 commit on the current branch. Note that the output format is
881 inferred by the extension of the output file.
885 <tt>git config tar.tar.xz.command
"xz -c"</tt>
889 Configure a
"tar.xz" format for making LZMA-compressed tarfiles.
890 You can use it specifying
<tt>--format=tar.xz
</tt>, or by creating an
891 output file like
<tt>-o foo.tar.xz
</tt>.
896 <h2 id=
"_see_also">SEE ALSO
</h2>
897 <div class=
"sectionbody">
898 <div class=
"paragraph"><p><a href=
"gitattributes.html">gitattributes(
5)
</a></p></div>
900 <h2 id=
"_git">GIT
</h2>
901 <div class=
"sectionbody">
902 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
905 <div id=
"footnotes"><hr /></div>
907 <div id=
"footer-text">
908 Last updated
2011-
09-
21 23:
01:
14 PDT