git export ?(git 导出)

实际上没有git export的命令,有也可能是第三方的。
那么这里有个git archive可以用作导出。

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

主要一些选项

--format=<fmt>
导出的格式: tar 或zip。如果未指定该选项并且指定了保存文件名,保存格式会按文件名的后缀选择。如保存为foo.zip,那么保存的格式就是zip。

-l
--list
列出所有可用的格式。 如tar,tgz,tar.gz,zip

-v
--verbose
输出进度.

--prefix=<prefix>/
指定一个前缀给压缩包

-o <file>
--output=<file>
保存到文件,文件名

<tree-ish>
分支名,如master

<path>
路径,可选参数。如果指定路径,则压缩归档的只包含这些路径的文件。

其它参数

-0
只归档,不压缩

-1
最快压缩

-9
最好压缩,但是最慢

可以指定1到9来调整压缩比和速度

示例

git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
归档当前分支最新提交的,并解压到/var/tmp/junk目录

git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
归档分支v1.4.0并压缩为tar包

git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
同上,但是用内置的压缩tar.gz

git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0
同上,但是输出格式从文件名提取,即tar.gz

git archive -o latest.zip HEAD
将当前分支包含最新提交归档为zip。输入格式提取自文件名zip