Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GIT-ARCHIVE(1)			  Git Manual			GIT-ARCHIVE(1)

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

       git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
		     [-o <file>	| --output=<file>] [--worktree-attributes]
		     [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>

       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

       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
       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 git
       get-tar-commit-id. In ZIP files it is stored as a file comment.

	   Format of the resulting archive: tar	or zip.	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 "" makes the
	   output to be	in the zip format). Otherwise the output format	is

       -l, --list
	   Show	all available formats.

       -v, --verbose
	   Report progress to stderr.

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

       -o <file>, --output=<file>
	   Write the archive to	<file> instead of stdout.

	   Add a non-tracked file to the archive. Can be repeated to add
	   multiple files. The path of the file	in the archive is built	by
	   concatenating the value for --prefix	(if any) and the basename of

	   Look	for attributes in .gitattributes files in the working tree as
	   well	(see the section called	"ATTRIBUTES").

	   This	can be any options that	the archiver backend understands. See
	   next	section.

	   Instead of making a tar archive from	the local repository, retrieve
	   a tar archive from a	remote repository. Note	that the remote
	   repository may place	restrictions on	which sha1 expressions may be
	   allowed in <tree-ish>. See git-upload-archive(1) for	details.

	   Used	with --remote to specify the path to the git-upload-archive on
	   the remote side.

	   The tree or commit to produce an archive for.

	   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.

	   Store the files instead of deflating	them.

	   Highest and slowest compression level. You can specify any number
	   from	1 to 9 to adjust compression speed and ratio.

	   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.	If
	   --remote is used then only the configuration	of the remote
	   repository takes effect.

	   This	variable specifies a shell command through which the tar
	   output generated by git archive should be piped. The	command	is
	   executed using the shell with the generated tar file	on its
	   standard input, and should produce the final	output on its standard
	   output. Any compression-level options will be passed	to the command
	   (e.g., "-9"). An output file	with the same extension	as <format>
	   will	be use this format if no other format is given.

	   The "tar.gz"	and "tgz" formats are defined automatically and
	   default to gzip -cn.	You may	override them with custom commands.

	   If true, enable <format> for	use by remote clients via git-upload-
	   archive(1). Defaults	to false for user-defined formats, but true
	   for the "tar.gz" and	"tgz" formats.

	   Files and directories with the attribute export-ignore won't	be
	   added to archive files. See gitattributes(5)	for details.

	   If the attribute export-subst is set	for a file then	Git will
	   expand several placeholders when adding this	file to	an archive.
	   See gitattributes(5)	for details.

       Note that attributes are	by default taken from the .gitattributes 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 .gitattributes), adjust the checked
       out .gitattributes file as necessary and	use --worktree-attributes
       option. Alternatively you can keep necessary attributes that should
       apply while archiving any tree in your $GIT_DIR/info/attributes file.

       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 extract it	in the /var/tmp/junk

       git archive --format=tar	--prefix=git-1.4.0/ v1.4.0 | gzip
	   Create a compressed tarball for v1.4.0 release.

       git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0
	   Same	as above, but using the	builtin	tar.gz handling.

       git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0
	   Same	as above, but the format is inferred from the output file.

       git archive --format=tar	--prefix=git-1.4.0/ v1.4.0^{tree} | gzip
	   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/ >
	   Put everything in the current head's	Documentation/ directory into, with the	prefix git-docs/.

       git archive -o HEAD
	   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.

       git config tar.tar.xz.command "xz -c"
	   Configure a "tar.xz"	format for making LZMA-compressed tarfiles.
	   You can use it specifying --format=tar.xz, or by creating an	output
	   file	like -o	foo.tar.xz.


       Part of the git(1) suite

Git 2.30.1			  02/08/2021			GIT-ARCHIVE(1)


Want to link to this manual page? Use this URL:

home | help