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格式)。否则,输出格式是tar。
  • -l –list 显示所有可用的格式。
  • -v –verbose 将进展报告给stderr。
  • –prefix=<prefix>/ 在档案中的每个文件名前加上<prefix> /。
  • -o <file> –output=<file> 将存档写入<file>而不是stdout。
  • –worktree-attributes 在工作树中查找.gitattributes文件中的属性(请参阅ATTRIBUTES)。 <extra> 这可以是存档器后端了解的任何选项。请参阅下一节。
  • –remote=<repo> 无需从本地存储库创建tar归档文件,可以从远程存储库中检索tar归档文件。请注意,远程存储库可能会限制允许使用哪个sha1表达式<tree-ish>。有关详细信息,请参阅git-upload-archive [1]。
  • –exec=<git-upload-archive> 与–remote一起用于指定git-upload-archive远程端的路径。 <tree-ish> 该树或承诺生成一个档案。 <path> 如果没有可选的路径参数,则当前工作目录的所有文件和子目录都将包含在归档中。如果指定了一个或多个路径,则只包含这些路径。

压缩

-0

存储文件而不是缩小它们。

-9

最高和最低的压缩级别。您可以指定1到9之间的任何数字来调整压缩速度和比率。

例子

git archive –list

查看支持的归档格式有tar、tgz、tar.gz、zip

git archive -o ../latest.zip HEAD

导出最新的版本库

git archive -o ../git-1.4.0.tar 8996b47

导出指定提交记录

git archive -o ../git-1.4.0-docs.zip HEAD:Documentation/

导出一个目录

git archive 8996b47 | gzip > ../git-1.4.0.tar.gz

导出为tar.gz格式