git archive

将指定版本的项目文件打包为 tar 或 zip 归档,不包含 .git 目录

语法

git archive [<options>] <tree-ish> [<path>...]

参数

参数说明示例级别
--format=<fmt> 指定归档格式(tar、zip、tar.gz) 常用
--prefix=<prefix>/ 为归档中的文件添加目录前缀 常用
-o <file> 输出到指定文件 常用
--remote=<repo> 从远程仓库导出(无需本地克隆) 常用
-l 列出支持的归档格式 常用

示例

将当前版本打包为 zip

git archive -o release.zip HEAD

将 v1.0.0 标签打包并添加目录前缀

git archive --format=tar.gz --prefix=myapp-v1.0/ -o myapp-v1.0.tar.gz v1.0.0

只打包指定目录

git archive HEAD src/ docs/

打包时排除特定文件

git archive --format=zip HEAD -o dist.zip -- ':!node_modules' ':!.env'

直接从远程仓库导出

git archive --remote=git@github.com:user/repo.git HEAD | tar -x

技巧

相关命令